diff options
author | Chris Cornutt <enygma@phpdeveloper.org> | 2015-07-27 14:16:27 -0500 |
---|---|---|
committer | Chris Cornutt <enygma@phpdeveloper.org> | 2015-07-27 14:16:27 -0500 |
commit | cac5d9ad1a77b508aaa1649752c35b48a453fe2a (patch) | |
tree | ca2cea4352d70e91682d3a175d60a145ff4b38e7 | |
parent | 9deb731ab26ff0efcd3f57a501df24b33fa5e9d4 (diff) | |
download | gatekeeper-cac5d9ad1a77b508aaa1649752c35b48a453fe2a.zip gatekeeper-cac5d9ad1a77b508aaa1649752c35b48a453fe2a.tar.gz gatekeeper-cac5d9ad1a77b508aaa1649752c35b48a453fe2a.tar.bz2 |
allowing inGroup and hasPermission to use "name" as well as "id"
-rw-r--r-- | src/Psecio/Gatekeeper/UserModel.php | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/Psecio/Gatekeeper/UserModel.php b/src/Psecio/Gatekeeper/UserModel.php index 79a950b..f7ddf06 100644 --- a/src/Psecio/Gatekeeper/UserModel.php +++ b/src/Psecio/Gatekeeper/UserModel.php @@ -373,16 +373,20 @@ class UserModel extends \Psecio\Gatekeeper\Model\Mysql /** * Check to see if the user is in the group * - * @param integer $groupId Group ID + * @param integer $groupId Group ID or name * @return boolean Found/not found in the group */ public function inGroup($groupId) { + $find = ['user_id' => $this->id]; + if (!is_numeric($groupId)) { + $g = Gatekeeper::findGroupByName($group); + $groupId = $g->id; + } + $find['group_id'] = $groupId; + $userGroup = new UserGroupModel($this->getDb()); - $userGroup = $this->getDb()->find($userGroup, array( - 'group_id' => $groupId, - 'user_id' => $this->id - )); + $userGroup = $this->getDb()->find($userGroup, $find); if ($userGroup->id === null) { return false; } @@ -392,16 +396,20 @@ class UserModel extends \Psecio\Gatekeeper\Model\Mysql /** * Check to see if a user has a permission * - * @param integer $permId Permission ID + * @param integer $permId Permission ID or name * @return boolean Found/not found in user permission set */ public function hasPermission($permId) { + $find = ['user_id' => $this->id]; + if (!is_numeric($permId)) { + $p = Gatekeeper::findPermissionByName($permId); + $permId = $p->id; + } + $find['permission_id'] = $permId; + $perm = new UserPermissionModel($this->getDb()); - $perm = $this->getDb()->find($perm, array( - 'permission_id' => $permId, - 'user_id' => $this->id - )); + $perm = $this->getDb()->find($perm, $find); return ($perm->id !== null && $perm->id === $permId) ? true : false; } |