コード例 #1
1
 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();
         }
     }
 }
コード例 #2
0
 public function actionSaveMembers()
 {
     $aclItems = CRequest::getArray("members");
     $group = new CUserGroup();
     $group->setAttributes(CRequest::getArray($group::getClassName()));
     // удаляем все старые записи и создаем новые
     $transaction = new CTransaction();
     foreach ($group->getACLRelations()->getItems() as $item) {
         $item->remove();
     }
     // создаем новый записи
     foreach ($aclItems["id"] as $key => $value) {
         $entry = new CACLGroupEntry();
         $entry->group_id = $group->getId();
         $entry->setType($aclItems["type"][$key]);
         $entry->setValue($value);
         $entry->save();
     }
     $transaction->commit();
     $this->redirect("?action=index");
 }