Example #1
0
 /**
  * Add or remove child permissions (including routes) and return back to view
  *
  * @param string $id
  *
  * @return \yii\web\Response
  */
 public function actionSetChildPermissions($id)
 {
     $role = $this->findModel($id);
     $newChildPermissions = Yii::$app->request->post('child_permissions', []);
     $oldChildPermissions = array_keys((new DbManager())->getPermissionsByRole($role->name));
     $toRemove = array_diff($oldChildPermissions, $newChildPermissions);
     $toAdd = array_diff($newChildPermissions, $oldChildPermissions);
     Role::addChildren($role->name, $toAdd);
     Role::removeChildren($role->name, $toRemove);
     Yii::$app->session->setFlash('success', 'Saved');
     return $this->redirect(['view', 'id' => $id]);
 }