示例#1
0
文件: Role.php 项目: uzerpllp/uzerp
 public function setPermissions($permission_ids, &$errors = array())
 {
     $db = DB::Instance();
     $db->StartTrans();
     $hp = new HasPermission();
     $hp->idField = 'roleid';
     if (!$hp->delete($this->id)) {
         $errors[] = 'Failed to update role permissions';
     }
     if (count($errors) === 0) {
         foreach ($permission_ids as $id) {
             if (empty($id)) {
                 continue;
             }
             $permission = DataObject::Factory(array('roleid' => $this->id, 'permissionsid' => $id), $errors, 'HasPermission');
             if (count($errors) === 0 && $permission) {
                 if ($permission->save()) {
                     continue;
                 }
             }
             $errors[] = 'Failed to update role permissions';
             break;
         }
     }
     if (count($errors) > 0) {
         $db->CompleteTrans();
         return false;
     }
     return $db->CompleteTrans();
 }
 /**
  * Checks a user has at-least one of a permisson
  *
  * @param HasPermission $user owner of HasPermission
  * @param array $permissions and array of permission keys
  * @return ConnorVG\Permissions\Permission
  */
 public function hasAtleastOneOf($user, $permissions)
 {
     foreach ($permissions as $permission) {
         if ($user->hasPermission($permission)) {
             return true;
         }
     }
     return false;
 }