public function save() { $group = $this->group; $roles = array(); if (array_key_exists("roles", $group)) { $roles = $group["roles"]; unset($group["roles"]); } $groupObj = new CUserGroup(); $groupObj->setAttributes($group); /** * Удаляем старые задачи группы и пользователей */ foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_GROUP_HAS_ROLES, "user_group_id = " . $groupObj->getId())->getItems() as $ar) { $ar->remove(); } $groupObj->save(); /** * Создаем новые задачи группы и пользователей */ foreach ($roles as $role => $level) { if ($level != 0) { $ar = new CActiveRecord(array("id" => null, "user_group_id" => $groupObj->getId(), "task_id" => $role, "task_rights_id" => $level)); $ar->setTable(TABLE_USER_GROUP_HAS_ROLES); $ar->insert(); } } }
public function actionSave() { $group = new CUserGroup(); $group->setAttributes(CRequest::getArray($group::getClassName())); if ($group->validate()) { $group->save(); $this->redirect("groups.php?action=index"); return true; } $this->setData("group", $group); $this->renderView("_acl_manager/groups/edit.tpl"); }