XE 3 (xpressengine 3) - 댓글에 대한 작성, 관리 권한 체크 (with Code)

해당 문서는 XE 3 (Xpressengine 3) 댓글의 작성, 관리 권한(Permission) 을 체크하는 코드를 설명하고 있습니다.

 

권한(Permission) 에 대한 자세한 설명을 읽고 싶다면 아래 글을 읽는 걸 추천드립니다.

https://www.xpressengine.com/guide/xe-service/service-permission

https://laravel.kr/docs/5.5/authorization

 

일반적으로 게시판 마다 하나의 댓글 Instance를 가지고 있습니다.

댓글 Instance는 각자의 상세 설정, 권한, 사용할 토글 메뉴 등 을 임의로 설정할 수 있습니다.

그렇기 때문에 권한 (Permission) 검사 할 때도 특정 댓글에 대한 Instacnce를 대상으로 진행해야 합니다. 


 

----

1. 댓글에 대한 관리 권한 (Manage Permission) 확인

 

권한(Permission) 에 대한 승인을 확인하려면 `allows` 메소드를 사용해야 합니다. (권한이 유효하면 `true` 반환)

$comment = Comment::findOrFail($this->identifier);
$commentHandler = app(Xpressengine\Plugins\Comment\Handler::class);

$permissionInstance = new Instance($commentHandler->getKeyForPerm($comment->instance_id));

return \Gate::allows('manage', $permissionInstance);

 

권한(Permission) 에 대한 거부을 확인하려면  `denies` 메소드를 사용해야 합니다. (권한이 유효하지 않으면 `true` 반환)

$comment = Comment::findOrFail($this->identifier);
$commentHandler = app(Xpressengine\Plugins\Comment\Handler::class);

$permissionInstance = new Instance($commentHandler->getKeyForPerm($comment->instance_id));

return \Gate::denies('manage', $permissionInstance);

 

 

2. 댓글에 대한 생성 권한 (Create Permission) 확인

 

권한(Permission) 에 대한 승인을 확인하려면 `allows` 메소드를 사용해야 합니다. (권한이 유효하면 `true` 반환)

$comment = Comment::findOrFail($this->identifier);
$commentHandler = app(Xpressengine\Plugins\Comment\Handler::class);

$permissionInstance = new Instance($commentHandler->getKeyForPerm($comment->instance_id));

return \Gate::allows('create', $permissionInstance);

 

권한(Permission) 에 대한 거부을 확인하려면  `denies` 메소드를 사용해야 합니다. (권한이 유효하지 않으면 `true` 반환)

$comment = Comment::findOrFail($this->identifier);
$commentHandler = app(Xpressengine\Plugins\Comment\Handler::class);

$permissionInstance = new Instance($commentHandler->getKeyForPerm($comment->instance_id));

return \Gate::denies('create', $permissionInstance);

 

  • share