Example #1
0
 /**
  * Записываем роли, допуски и их связи в
  * соотествующие таблицы после сохранения
  *
  * @param bool $insert
  * @param array $changedAttributes
  * @return bool
  */
 public function afterSave($insert, $changedAttributes)
 {
     parent::afterSave($insert, $changedAttributes);
     // Удаляем сначала прошлые связи с другими ролями и допусками
     AuthItemChild::deleteAll(['parent' => $this->name]);
     // Сохраняем новые связи
     if ($this->children_array) {
         foreach ($this->children_array as $child) {
             $authItemChild = new AuthItemChild();
             $authItemChild->parent = $this->name;
             $authItemChild->child = $child;
             $authItemChild->save();
         }
     }
     // Удаляем сначала прошлые связи с пользователями
     AuthAssignment::deleteAll(['item_name' => $this->name]);
     // Сохраняем новые связи
     if ($this->user_array) {
         foreach ($this->user_array as $user) {
             $authAssignment = new AuthAssignment();
             $authAssignment->item_name = $this->name;
             $authAssignment->user_id = $user;
             $authAssignment->save();
         }
     }
 }
Example #2
0
 /**
  * Сязи пользователь => роль
  * @return \yii\db\ActiveQuery
  */
 public function getAuthAssignments()
 {
     return $this->hasMany(AuthAssignment::className(), ['user_id' => 'id']);
 }