/**
  * @param string $id
  *
  * @return string
  */
 public function actionView($id)
 {
     $item = $this->findModel($id);
     $routes = Route::find()->asArray()->all();
     $permissions = Permission::find()->andWhere(['not in', Yii::$app->getModule('user-management')->auth_item_table . '.name', [Yii::$app->getModule('user-management')->commonPermissionName, $id]])->joinWith('group')->all();
     $permissionsByGroup = [];
     foreach ($permissions as $permission) {
         $permissionsByGroup[@$permission->group->name][] = $permission;
     }
     $childRoutes = AuthHelper::getChildrenByType($item->name, AbstractItem::TYPE_ROUTE);
     $childPermissions = AuthHelper::getChildrenByType($item->name, AbstractItem::TYPE_PERMISSION);
     return $this->renderIsAjax('view', compact('item', 'childPermissions', 'routes', 'permissionsByGroup', 'childRoutes'));
 }
Example #2
0
 /**
  * Check if current route allowed for everyone (in commonPermission routes)
  *
  * @param string $currentFullRoute
  *
  * @return bool
  */
 protected static function isInCommonPermission($currentFullRoute)
 {
     $commonRoutes = Yii::$app->cache->get('__commonRoutes');
     if ($commonRoutes === false) {
         $commonRoutesDB = (new Query())->select('child')->from(Yii::$app->getModule('user-management')->auth_item_child_table)->where(['parent' => Yii::$app->getModule('user-management')->commonPermissionName])->column();
         $commonRoutes = Route::withSubRoutes($commonRoutesDB, ArrayHelper::map(Route::find()->asArray()->all(), 'name', 'name'));
         Yii::$app->cache->set('__commonRoutes', $commonRoutes, 3600);
     }
     return in_array($currentFullRoute, $commonRoutes);
 }