Example #1
0
 /**
  * Update a role and his permissions
  * @param array $params
  * @return int
  */
 public static function edit($params)
 {
     $class = __CLASS__;
     $aclRole = Doctrine_Query::create()->update("{$class} r")->set("r.name", "'{$params['name']}'")->set("r.description", "'{$params['description']}'")->where("r.id = {$params['aclrole_id']}")->execute();
     if (!empty($params['resources']) || !empty($params['resources_available'])) {
         $params['resources'] = isset($params['resources']) ? $params['resources'] : array();
         $params['resources_available'] = isset($params['resources_available']) ? $params['resources_available'] : array();
         AclPermission::deleteRolePermissions($params['aclrole_id'], $params['resources']);
         foreach ($params['resources_available'] as $resource) {
             $permission = new AclPermission();
             $permission->resource_id = $resource;
             $permission->role_id = $params['aclrole_id'];
             $permission->save();
         }
     }
     return $aclRole;
 }