/**
  * Put tags.
  *
  * @return Response
  */
 public function putTags(Board $board)
 {
     if (!$board->canEditConfig($this->user)) {
         return abort(403);
     }
     $input = Input::all();
     $rules = ['boardTags' => ["array", "min:0", "max:5"]];
     if (isset($input['boardTags']) && is_array($input['boardTags'])) {
         $input['boardTags'] = array_filter($input['boardTags']);
     }
     $validator = Validator::make($input, $rules);
     $validator->each('boardTags', ['string', 'alpha_dash', 'max:24']);
     if (!$validator->passes()) {
         return redirect()->back()->withErrors($validator->errors());
     }
     $tags = [];
     $tagArray = [];
     foreach ($input['boardTags'] as $boardTag) {
         $boardTag = (string) $boardTag;
         if (strlen($boardTag) && !isset($tagArray[$boardTag])) {
             // Add the tag to the list of set tags to prevent duplicates.
             $tagArray[$boardTag] = true;
             // Find or create the board tag.
             $tags[] = BoardTag::firstorCreate(['tag' => $boardTag]);
         }
     }
     $board->tags()->detach();
     if (count($tags)) {
         $tags = $board->tags()->saveMany($tags);
     }
     Event::fire(new BoardWasModified($board));
     return $this->view(static::VIEW_TAGS, ['board' => $board, 'tags' => array_keys($tagArray), 'tab' => "tags"]);
 }