summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Cornutt <enygma@phpdeveloper.org>2015-07-08 17:01:17 -0500
committerChris Cornutt <enygma@phpdeveloper.org>2015-07-08 17:01:17 -0500
commitd13720937c7aa9ae3563fa1aaac5b8a102328d5e (patch)
tree440c1b1d4296e115a4142b82ada14398834515ff
parent426d9317fdf55bc8f701ba1b3dc442bdf8ba5344 (diff)
downloadgatekeeper-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.php23
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