boardService = new BoardService(); $this->postService = new PostService(); } /** * Determine whether the user can view any models. * * @param \App\Models\User $user * @param \App\Models\BoardMeta $boardMeta * @return \Illuminate\Auth\Access\Response|bool */ public function viewAny(?User $user, BoardMeta $boardMeta) { // 게시판 사용 권한 확인 $permitValue = $boardMeta->item(BOARD_PERMIT_TYPE_1, 0); if ($permitValue == 1 && !$user) { return $this->deny('로그인 후 이용 해주세요.', 401); }else if($permitValue == 100 && !$user?->isAdministrator()) { return $this->deny(MAP_BOARD_PERMIT_ALERT_TYPE[BOARD_PERMIT_TYPE_1]); } // 1:1 문의 게시판은 로그인 후 이용할 수 있다. if($boardMeta->item('use_personal', 0)) { if(!$user) { return $this->deny('로그인 후 이용 해주세요.', 401); } } return true; } /** * Determine whether the user can create models. * * @param \App\Models\User $user * @param \App\Models\Board $board * @param \App\Models\BoardMeta $boardMeta * @return \Illuminate\Auth\Access\Response|bool */ public function create(?User $user, Board $board, BoardMeta $boardMeta) { // 글 작성은 하루에 한번만 허용 if ($boardMeta->item('use_only_one_post', 0)) { if ($this->postService->userPostRows($board, $user) >= 1) { return $this->deny('이 게시판은 하루에 한 글만 작성 가능합니다.'); } } // 글쓰기 버튼 보이기 if(!$boardMeta->item('always_show_write_button', 0)) { return false; } return true; } }