diff options
-rw-r--r-- | src/Psecio/Gatekeeper/GroupModel.php | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/Psecio/Gatekeeper/GroupModel.php b/src/Psecio/Gatekeeper/GroupModel.php index 3364339..0fbf8f9 100644 --- a/src/Psecio/Gatekeeper/GroupModel.php +++ b/src/Psecio/Gatekeeper/GroupModel.php @@ -118,6 +118,29 @@ class GroupModel extends \Psecio\Gatekeeper\Model\Mysql } /** + * Check to see if the group has a permission + * + * @param integer|PermissionModel $permission Either a permission ID or PermissionModel + * @return boolean Permission found/not found + */ + public function hasPermission($permission) + { + if ($this->id === null) { + return false; + } + if ($permission instanceof PermissionModel) { + $permission = $permission->id; + } + + $perm = new GroupPermissionModel($this->getDb()); + $perm = $this->getDb()->find($perm, array( + 'permission_id' => $permission, + 'group_id' => $this->id + )); + return ($perm->id !== null && $perm->permissionId == $permission) ? true : false; + } + + /** * Add a permission relation for the group * * @param integer|PermissionModel $permission Either a permission ID or PermissionModel |