/** * Add or remove routes for this permission * * @param string $id * * @return \yii\web\Response */ public function actionSetChildRoutes($id) { $item = $this->findModel($id); $newRoutes = Yii::$app->request->post('child_routes', []); $oldRoutes = array_keys(AuthHelper::getChildrenByType($item->name, AbstractItem::TYPE_ROUTE)); $toAdd = array_diff($newRoutes, $oldRoutes); $toRemove = array_diff($oldRoutes, $newRoutes); Permission::addChildren($id, $toAdd); Permission::removeChildren($id, $toRemove); if (($toAdd or $toRemove) and $id == Yii::$app->getModule('user-management')->commonPermissionName) { Yii::$app->cache->delete('__commonRoutes'); } AuthHelper::invalidatePermissions(); Yii::$app->session->setFlash('success', UserManagementModule::t('back', 'Saved')); return $this->redirect(['view', 'id' => $id]); }