/** * 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; }