/** * @inheritdoc */ public function up() { // deleting users module settings Permission::deleteAll(); AuthItemGroup::deleteAll(); Route::refreshRoutes(); // create basic application roles foreach ($this->roles as $name => $description) { Role::create($name, $description); } $group = new AuthItemGroup(); $group->name = 'Frontend common permission'; $group->code = Yii::$app->getModule('users')->commonPermissionName; $group->save(false); Permission::create(Yii::$app->getModule('users')->commonPermissionName, null, $group->code); // frontend profile management permissions $group = new AuthItemGroup(); $group->name = 'Frontend - менеджмент профилей'; $group->code = 'frontendProfileManagement'; $group->save(false); Permission::create('frontendProfileView', 'Frontend - Просмотр профиля', $group->code); Permission::create('frontendProfileUpdate', 'Frontend - Обновление профиля', $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendProfileView', ['frontend /profile/view'], null, $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendProfileUpdate', ['frontend /profile/update'], null, $group->code); // frontend advert management permissions $group = new AuthItemGroup(); $group->name = 'Frontend - менеджмент объявлений'; $group->code = 'frontendAdvertManagement'; $group->save(false); Permission::create('frontendAdvertCreate', 'Frontend - Создание объявления', $group->code); Permission::create('frontendAdvertDelete', 'Frontend - Удаление объявления', $group->code); Permission::create('frontendAdvertList', 'Frontend - Просмотр списка объявлений', $group->code); Permission::create('frontendAdvertUpdate', 'Frontend - Обновление объявления', $group->code); Permission::create('frontendAdvertView', 'Frontend - Просмотр объявления', $group->code); Permission::create('frontendAdvertPublished', 'Frontend - Список опубликованных объявлений', $group->code); Permission::create('frontendAdvertBookmarks', 'Frontend - Список объявлений в заметках', $group->code); Role::assignRoutesViaPermission('Guest', 'frontendAdvertView', ['frontend /advert/view'], null, $group->code); Role::assignRoutesViaPermission('Guest', 'frontendAdvertList', ['frontend /advert/list'], null, $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendAdvertCreate', ['frontend /advert/create'], null, $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendAdvertDelete', ['frontend /advert/update'], null, $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendAdvertList', ['frontend /advert/delete'], null, $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendAdvertList', ['frontend /advert/published'], null, $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendAdvertUpdate', ['frontend /advert/update'], null, $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendAdvertView', ['frontend /advert/bookmarks'], null, $group->code); // frontend file management permissions Permission::create('frontendFileDelete', 'Frontend - Удаление файла', $group->code); Permission::create('frontendFileUpload', 'Frontend - Загрузка файла', $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendFileUpload', ['frontend /file/upload'], null, $group->code); Role::assignRoutesViaPermission('ServiceUser', 'frontendFileDelete', ['frontend /file/delete'], null, $group->code); // backend common permissions $group = new AuthItemGroup(); $group->name = 'Backend common permission'; $group->code = Yii::$app->getModule('users')->backendCommonPermissionName; $group->save(false); Permission::create(Yii::$app->getModule('users')->backendCommonPermissionName, null, $group->code); /*$group = new AuthItemGroup(); $group->name = 'Backend - менеджмент объявлений'; $group->code = 'backendAdvertManagement'; $group->save(false); Permission::create('backendAdvertCreate', 'Backend - Создание объявления', $group->code); Permission::create('backendAdvertDelete', 'Backend - Удаление объявления', $group->code); Permission::create('backendAdvertList', 'Backend - Просмотр списка объявлений', $group->code); Permission::create('backendAdvertUpdate', 'Backend - Обновление объявления', $group->code); Permission::create('backendAdvertView', 'Backend - Просмотр объявления', $group->code); Permission::create('backendCategoryCreate', 'Backend - Создание категории', $group->code); Permission::create('backendCategoryDelete', 'Backend - Удаление категории', $group->code); Permission::create('backendCategoryList', 'Backend - Просмотр списка категорий', $group->code); Permission::create('backendCategoryUpdate', 'Backend - Обновление категории', $group->code); Permission::create('backendCategoryView', 'Backend - Просмотр категории', $group->code); Permission::create('backendCityCreate', 'Backend - Создание города', $group->code); Permission::create('backendCityDelete', 'Backend - Удаление города', $group->code); Permission::create('backendCityList', 'Backend - Просмотр списка городов', $group->code); Permission::create('backendCityUpdate', 'Backend - Обновление города', $group->code); Permission::create('backendCityView', 'Backend - Просмотр города', $group->code); Permission::create('backendUserCreate', 'Backend - Создание пользователя', $group->code); Permission::create('backendUserDelete', 'Backend - Удаление пользователя', $group->code); Permission::create('backendUserList', 'Backend - Просмотр списка пользователей', $group->code); Permission::create('backendUserUpdate', 'Backend - Обновление пользователя', $group->code); Permission::create('backendUserView', 'Backend - Просмотр пользователя', $group->code); Permission::create('backendUserCreate', 'Backend - Создание пользователя', $group->code); Permission::create('backendUserDelete', 'Backend - Удаление пользователя', $group->code); Permission::create('backendUserList', 'Backend - Просмотр списка пользователей', $group->code); Permission::create('backendUserUpdate', 'Backend - Обновление пользователя', $group->code); Permission::create('backendUserView', 'Backend - Просмотр пользователя', $group->code);*/ }
/** * Useful for Menu widget * * <example> * ... * [ 'label'=>'Some label', 'url'=>['/site/index'], 'visible'=>User::canRoute(['/site/index']) ] * ... * </example> * * @param string|array $route * @param bool $superAdminAllowed * * @return bool */ public static function canRoute($route, $superAdminAllowed = true) { if ($superAdminAllowed and Yii::$app->user->isSuperadmin) { return true; } $baseRoute = AuthHelper::unifyRoute($route); if (Route::isFreeAccess($baseRoute)) { return true; } AuthHelper::ensurePermissionsUpToDate(); return Route::isRouteAllowed($baseRoute, Yii::$app->session->get(AuthHelper::SESSION_PREFIX_ROUTES, [])); }