diff options
author | Chris Cornutt <enygma@phpdeveloper.org> | 2015-07-08 17:01:17 -0500 |
---|---|---|
committer | Chris Cornutt <enygma@phpdeveloper.org> | 2015-07-08 17:01:17 -0500 |
commit | d13720937c7aa9ae3563fa1aaac5b8a102328d5e (patch) | |
tree | 440c1b1d4296e115a4142b82ada14398834515ff | |
parent | 426d9317fdf55bc8f701ba1b3dc442bdf8ba5344 (diff) | |
download | gatekeeper-d13720937c7aa9ae3563fa1aaac5b8a102328d5e.zip gatekeeper-d13720937c7aa9ae3563fa1aaac5b8a102328d5e.tar.gz gatekeeper-d13720937c7aa9ae3563fa1aaac5b8a102328d5e.tar.bz2 |
adding a method to check if a group has a permission
-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 |