Задать вопрос
  • Как правильно добавить сервис соцсетей в блог?

    @Maila Автор вопроса
    slo_nik, вот сервис кнопок добавился на страницу и я пробую сделать 'share' через vk, к примеру.. и тут всплывает такое окно: 59e26e0353921699199026.jpeg Думаю, не каждому пользователю захочется оставлять свои данные ,в этом случае, для того, чтобы просто сделать ссылку. И здесь разницы нет -авторизован пользователь или нет. т.е. даже если пользователь зашёл через 'Login' - все ровно в форме просьба сделать вход и указывать тел. Не могу найти -где это отключить можно?
  • Как правильно добавить сервис соцсетей в блог?

    @Maila Автор вопроса
    Здравствуйте, а как этот плагин подключать нужно и куда? 59e249a5d9062263658823.jpeg

    на github в инструкции пишется: ' 1. Скопируйте содержимое в директорию с yii приложением (по умолчанию protected)'
    Вопрос: т.е в папку vendor скопировать нужно всё?

    2. Виджет авторизации вставляется следующим кодом:
    <?php  $this->widget('application.components.UloginWidget', array(
        'params'=>array(
            'redirect'=>'http://'.$_SERVER['HTTP_HOST'].'/index.php?r=ulogin/login' //Адрес, на который ulogin будет редиректить браузер клиента. Он должен соответствовать контроллеру ulogin и действию login
        )
    )); ?>

    И здесь, чтобы кнопки отображались в каждом посте блога- можно где-то вставить код один раз?
  • Как исправить ошибку?

    @Maila Автор вопроса
    Decadal по правилу необходимо сделать так было: git clone https://github.com//адрес
    composer self-update
    composer global require "fxp/composer-asset-plugin:~1.1.1"
    cd yii2-shop
    composer install Но только у меня уже есть другой проект с другой версией и мне не нужны глобальные настройки, у меня свой шаблон приложения.
    Команды были такие:
    https://github.com//адрес
    cd yii2-shop
    php init
    Cейчас если запустить команду: 'composer install' то выводиться следующее: 59e06dba48785351463282.jpeg
  • Почему не включается debag панель?

    @Maila Автор вопроса
    Добрый вечер! Cайт на локальном сервере. 'allowedIPs' закомм. везде, только в какой консоли нужно ввести эту команду? Если в моём редакторе, то там ошибка такая - 59dfac72b42e9651406684.jpeg, а если в смd admin на Open Servere то пишет, что 'sudo' не является внутренней или внешней командой, программой или пакетным файлом. Пробовала просто удалить папку с названием '96' в dir D:\sites\yii2-shop\backend\runtime\cache\96 - не помогло. Может, нужно сделать авторизацию с формой регистрации вначале и определить права доступа-тогда будет работать?
  • Почему не включается debag панель?

    @Maila Автор вопроса
    Максим Федоров, он изначально был в режиме 'prod' сначала, а затем я поменяла на 'dev' и обновила composer т.к. миграции не устанавливались. Да, были такие ошибки по поводу fxp-плагина. 59df717a1fe5d731856266.jpeg
  • Почему не включается debag панель?

    @Maila Автор вопроса
    admin.shop.local/?r=debug Если везде указать в 'allowedIPs' свой IP то 59df6d7f28608958514867.jpeg а если: 'allowedIPs' => ['*'],59df6ef88adab506552921.jpeg Может, ещё в том проблема, что нет формы регистрации здесь? Во fronted есть только:
    About
    Contact
    My cart,
    а в backend
    Website
    Categories
    Products
    Orders
    Login
    и надо, может быть, ещё yii2-adminlte установить?
  • Почему не включается debag панель?

    @Maila Автор вопроса
    Decadal, а там ничего нет..или что-то другое нужно? 59df6afded8e2732911094.jpeg
  • Почему не включается debag панель?

    @Maila Автор вопроса
    уже пробовала такой вариант и также в main.php добавить allowedIP - на моём локальном сервере это не работает. но заметила, что в другом проекте в мain.php, где debug работает в bootstrap кроме 'log' добавлены 'gii' и'debag' выглядит это так:
    <?php
    use \kartik\datecontrol\Module;
    $params = array_merge(
        require(__DIR__ . '/../../common/config/params.php'),
        require(__DIR__ . '/../../common/config/params-local.php'),
        require(__DIR__ . '/params.php'),
        require(__DIR__ . '/params-local.php')
    );
    
    return [
        'id' => 'app-backend',
        'basePath' => dirname(__DIR__),
        'controllerNamespace' => 'backend\controllers',
        'bootstrap' => ['log','gii','debug'],
        'language' => 'ru',
        'modules'=>[
        'gii'=>[
        'class'=>'yii2\gii\Module',
         'generators' => [ //here
                'crud' => [ // generator name
                    'class' => 'yii\gii\generators\crud\Generator', // generator class
                    'templates' => [ //setting for out templates
                        'myGii' => '@common/generators/crud/default', // template name => path to template
                    ]
                ]
            ],
        ],
        'debug'=>[
        'class'=>'yii2\debug\Module'
        ],
       'blog' => [
                'class' => 'medeyacom\blog\Blog',
            ],
         'datecontrol'=> [
         'class'=> 'kartik\datecontrol\Module',
          // format settings for displaying each date attribute (ICU format example)
    'displaySettings' => [
        Module::FORMAT_DATE => 'php:d-M-Y', 
        /*'dd-MM-yyyy',*/
        Module::FORMAT_TIME => 'php: H:1',
        /*'hh:mm:ss a',*/
        Module::FORMAT_DATETIME => 'php:d-m-Y H:1',
        /*'dd-MM-yyyy hh:mm:ss a',*/ 
    ],
     
    // format settings for saving each date attribute (PHP format example)
    'saveSettings' => [
        Module::FORMAT_DATE => 'yyyy-M-dd', 
        /*'php:U', // saves as unix timestamp*/
        Module::FORMAT_TIME => 'H:i:s',
        /*'php:H:i:s',*/
        Module::FORMAT_DATETIME => 'yyyy-M-dd H:i:s',
        /*'php:Y-m-d H:i:s',*/
    ],   
    'displayTimezone'=>'UTC',
    'saveTimezone' => 'UTC',
    'autoWidget' =>true,
    ]
        ],
           
        'components' => [
        /*'user' =>[
        'identityClass' =>'common\models\User',
        'enableAutoLogin' => true,
        ],
        'view' => [
             'theme' => [
                 'pathMap' => [
                    '@app/views' => '@vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app'
                 ],
             ],
        ],*/
            'request' => [
                'csrfParam' => '_csrf-backend',
            ],
            'user' => [
                'identityClass' => 'common\models\User',
                'enableAutoLogin' => true,
                'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true],
            ],
           
             'session' => [
                // this is the name of the session cookie used for login on the backend
                'name' => 'advanced-backend',
            ],
            
            'log' => [
                'traceLevel' => YII_DEBUG ? 3 : 0,
                'targets' => [
                    [
                        'class' => 'yii\log\FileTarget',
                        'levels' => ['error', 'warning'],
                    ],
                ],
            ],
            'errorHandler' => [
                'errorAction' => 'site/error',
            ],
            'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
    
    
                'rules' => [
                
    
                ],
            ],
           'formatter'=> [
                'class' =>'yii\i18n\Formatter',
               /*  'defaultTimeZone' => 'Europe/Samara',*/
                /* 'timeZone' => 'GMT+5',*/
                'decimalSeparator' => ',',
                'thousandSeparator' => ' ',
                'currencyCode' => 'EUR',
               /* 'dateFormat' => 'd MMMM yyyy',*/
                'dateFormat' => 'php:d-M-Y',
                'datetimeFormat' => 'php: d-M-Y H:i:',
    
                /*'datetimeFormat'=>'d-M-Y H:i:s',*/
               /* 'timeFormat' => 'H:i:s', */
        ],
    
    ],
        'params' => $params,
    
         'on beforeAction' => function($event){ //цепляемся за событие перед запуском экшена
          Yii::$app->controller->attachBehavior('',[ //цепляем к текущему контролеру поведение
              'class' => \yii\filters\AccessControl::className(), //указываем класс поведения
              'except' => ['login','error','register'], 
             //исключим из правила экшены login и error, так как они должны быть доступны всем
              'rules' => [
                  [
                      'allow' => true, //разрешаем доступ
                      'roles' => ['@'], //'@' только зарегистрированным пользователям или замените на 'admin',  что бы только админам позволить
                  
      
                  ],
    
    
              ],
          ]);
        },
    
    
          
    ];


    но если в этом нерабочем main.php добавить в этoй строке 'bootstrap' => ['log', 'debag'], , то ошибка: 'Unknown bootstrapping component ID: debag' а если 'bootstrap' => ['log', 'gii','debag'], 'Unknown bootstrapping component ID: gii'
  • Почему не устанавливаются миграции?

    @Maila Автор вопроса
    я в комментарии под вопросом написала ответ, что проблема решилась и там пояснения
  • Почему не устанавливаются миграции?

    @Maila Автор вопроса
    В общем, ошибка решилась изменением параметров 'dedined' в index.php из 'prod' на 'dev' и обновлением composer. Но в процессе этого появились такие сообщения: 59dd143e516e9382838319.jpeg Насколько это критично?
  • Rbac- как настроить доступ на основе созданных ролей?

    @Maila Автор вопроса
    slo_nik, а куда этот код нужно добавить, в какой файл?
    Зарегистрированным пользователям нечего там делать, зачем давать доступ?

    Хочется сделать так, чтобы пользователи могли создавать и редактировать но только свои посты, а контент-менеджер и админ за этим бы следили. Или это нужно на fronted реализовывать? Либо сделать доступ в backend всем зарегистрированным, но с разными правами.
  • Rbac- как настроить доступ на основе созданных ролей?

    @Maila Автор вопроса
    Максим Федоров, не совсем понятно, как настраивать этот доступ ActionColumn и где? в форме блога?
  • Rbac- как настроить доступ на основе созданных ролей?

    @Maila Автор вопроса
    В SiteController (backend) AccessControl у меня определен так:
    public function behaviors()
        {
            return [
                'access' => [
                    'class' => AccessControl::className(),
                    'rules' => [
    
                        [
                            'actions'=> ['index'],
                            'allow' => true,
                           'roles' => ['canAdmin'],
                            /* 'roles' => ['?'],*/
    
    
                        ],
                        [
                            'actions' => ['login', 'error'],
                            'allow' => true,
                            
                        ],
                        [
                          'actions' => ['logout','save-redactor-img','save-img'],
                          'allow' => true,
                          'roles' => ['@'],
                            ],
                        ],
                  ],
                'verbs' => [
                    'class' => VerbFilter::className(),
                    'actions' => [
                        'logout' => ['post'],
                    ],
                ],
            ];
        }
    
        /**


    Сейчас доступ в backend есть всем зарегистрированным пользователям. Так и должно быть, но только у всех должны быть разные права на странице блога admin.site.com/blog Сейчас, если к примеру, '
    user' заходит через просмотр в пост , созданный 'content' или 'админ' - то кнопок 'update/delete' нет. Но т.к. кнопки есть здесь admin.site.com/blog он может совершать любые действия.
    Для 'content' есть кнопки 'update/delete во view блога, созданного 'user', но нет для 'admin' 'Admin' же имеет все права. Вот как скрыть эти кнопки корзины и карандаш здесь admin.site.com/blog в соответствии с ролями в базе?
    56c47e712f7b4afdbe59a26355d274f9.jpgcc29cb2313924d719b2940d62564230b.jpgd9c0d23a2948482aa7b6060b717bfb80.jpg14ee13048b7142d79292c5f61756dede.jpg
  • Rbac- как настроить доступ на основе созданных ролей?

    @Maila Автор вопроса
    slo_nik, Здравствуйте В SiteController (backend) у меня такой код:

    class SiteController extends Controller
    {
        /**
         * @inheritdoc
         */
        public function behaviors()
        {
            return [
                'access' => [
                    'class' => AccessControl::className(),
                    'rules' => [
    
                        [
                            'actions'=> ['index'],
                            'allow' => true,
                           'roles' => ['canAdmin'],
                            /* 'roles' => ['?'],*/
    
    
                        ],
                        [
                            'actions' => ['login', 'error'],
                            'allow' => true,
                            
                        ],
                        [
                          'actions' => ['logout','save-redactor-img','save-img'],
                          'allow' => true,
                          'roles' => ['@'],
                            ],
                        ],
                  ],
                'verbs' => [
                    'class' => VerbFilter::className(),
                    'actions' => [
                        'logout' => ['post'],
                    ],
                ],
            ];
        }
    
        /**
         * @inheritdoc
         */


    В main.php (backend\config) добавлено:

    'params' => $params,
    
         'on beforeAction' => function($event){ //цепляемся за событие перед запуском экшена
          Yii::$app->controller->attachBehavior('',[ //цепляем к текущему контролеру поведение
              'class' => \yii\filters\AccessControl::className(), //указываем класс поведения
              'except' => ['login','error','register'], 
             //исключим из правила экшены login и error, так как они должны быть доступны всем
              'rules' => [
                  [
                      'allow' => true, //разрешаем доступ
                      'roles' => ['@'], //'@' только зарегистрированным пользователям или замените на 'admin',  что бы только админам позволить
                  ],
              ],
          ]);
        },


    Сейчас доступ в backend есть всем зарегистрированным пользователям. Так и должно быть, но только у всех должны быть разные права на странице блога admin.site.com/blog Сейчас, если к примеру, 'user' заходит через просмотр в пост , созданный 'content' или 'админ' - то кнопок 'update/delete' нет. Но т.к. кнопки есть здесь admin.site.com/blog он может совершать любые действия.
    Для 'content' есть кнопки 'update/delete во view блога, созданного 'user', но нет для 'admin' 'Admin' же имеет все права. Вот как настроить эти роли здесь? admin.site.com/blog
  • Ошибка валидации - как исправить?

    @Maila Автор вопроса
    У меня 'rules' прописаны в common/config/main.php и только там, если менять -то работает. а как сделать чтобы, к примеру, доступ на сайт был всем, а к блогу -только зарегистрированным? Какой значёк должен быть в main.php? И надо, так понимаю, в BlogController прописывать отдельно ещё rules?

    main.php
    <?php
    return [
        'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
        'timeZone' => 'Europe/Moscow',
        'components' => [
            'cache' => [
                'class' => 'yii\caching\FileCache',
                /* 'robotEmail' => '',*/
                /*'robotName' => 'Robot'*/
            ],
                
             'image' => [
            	 	'class' => 'yii\image\ImageDriver',
            		'driver' => 'GD',  //GD or Imagick
            		],
                    
            'authManager' => [
                'class' => 'yii\rbac\DbManager',
                'cache' => 'cache'
            ],
        
        ],
        'on beforeAction' => function($event){ //цепляемся за событие перед запуском экшена
          Yii::$app->controller->attachBehavior('',[ //цепляем к текущему контролеру поведение
              'class' => \yii\filters\AccessControl::className(), //указываем класс поведения
              'except' => ['login','error','register'], 
             //исключим из правила экшены login и error, так как они должны быть доступны всем
              'rules' => [
                  [
                      'allow' => true, //разрешаем доступ
                      'roles' => ['@'], //'@' только зарегистрированным пользователям или замените на 'admin',  что бы только админам позволить
                  ],
              ],
          ]);
        },
    ];
  • RBAC привязка ролей к пользователю-почему нет доступа?

    @Maila Автор вопроса
    Максим Тимофеев,

    RegistrForm.php (common/models)
    <?php
    namespace common\models;
    
    use yii\base\Model;
    use common\models\User;
    
    /**
     * Signup form
     */
    class SignupForm extends Model
    {
        public $username;
        public $email;
        public $password;
    
    
        /**
         * @inheritdoc
         */
    
    /*  public function rules()
        {
            return array(
                array('email', 'password', 'required', 'message'=>'Поле обязательно для заполнения'),
                array('email', 'email', 'message'=>'Неверный формат Email'),
                array('password', 'compare', 'compareAttribute'=> 'message'=>'Пароли не совпадают'),
            );
        }*/
    
    
       public function rules()
        {
            return [
                ['username', 'trim'],
                ['username', 'required'],
                ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'],
                ['username', 'string', 'min' => 2, 'max' => 255],
    
                ['email', 'trim'],
                ['email', 'required'],
                ['email', 'email'],
                ['email', 'string', 'max' => 255],
                ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],
    
                ['password', 'required'],
                ['password', 'string', 'min' => 6],
            ];
        }
    
        /**
         * Signs user up.
         *
         * @return User|null the saved model or null if saving fails
         */
    
        public function attributeLabels () {
            return [
            'username' => 'Логин',
            'password' => 'Пароль',
            'email' => 'email',
            ];
    }
    
    
    
      public function register()
        {
            if(!$this->hasError())
            {
                
                //Добавляем в бд
                $model = new User;
                $model->user_email = $this->email;
                $model->user_password = CPasswordHelper::hashPassword($this->password);
                $model->save();
                
            }
            else
                return false;
        }
    }
    
      /*  public function register()
        {
            if (!$this->validate()) {
                return null;
            }
            
            $user = new User();
            $user->username = $this->username;
            $user->email = $this->email;
            $user->setPassword($this->password);
            $user->generateAuthKey();
            
            return $user->save() ? $user : null;
        }
    }*/
  • RBAC привязка ролей к пользователю-почему нет доступа?

    @Maila Автор вопроса
    Максим Тимофеев,

    В SiteController добавлен метод actionRegister, пробовала разные варианты-может быть, в 'access' нужно что-то прописать?

    <?php
    namespace backend\controllers;
    
    use Yii;
    use yii\web\Controller;
    use yii\filters\VerbFilter;
    use yii\filters\AccessControl;
    use common\models\LoginForm;
    use yii\base\DynamicModel;
    use vova07\imperavi\Widget;
    use yii\base\Action;
    use yii\base\InvalidCallException;
    use yii\base\InvalidConfigException;
    use yii\helpers\FileHelper;
    use yii\web\BadRequestHttpException;
    use yii\web\Response;
    use yii\web\UploadedFile;
    use yii\helpers\Url;
    use yii\widgets\ActiveForm;
    use kartik\widgets\FileInput;
    use common\models\Person;
    use common\models\ImageManager;
    
    
    
    
    /**
     * Site controller
     */
    class SiteController extends Controller
    {
        /**
         * @inheritdoc
         */
        public function behaviors()
        {
            return [
                'access' => [
                    'class' => AccessControl::className(),
                    'rules' => [
    
                        [
                            'actions'=> ['index'],
                            'allow' => true,
                            'roles' => ['canAdmin'],
    
    
                        ],
                        [
                            'actions' => ['login', 'error'],
                            'allow' => true,
                            
                        ],
                        [
                          'actions' => ['logout','save-redactor-img','save-img'],
                          'allow' => true,
                          'roles' => ['@'],
                            ],
                        ],
                  ],
                'verbs' => [
                    'class' => VerbFilter::className(),
                    'actions' => [
                        'logout' => ['post'],
                    ],
                ],
            ];
        }
    
        /**
         * @inheritdoc
         */
        public function actions()
        {
            return [
                'error' => [
                    'class' => 'yii\web\ErrorAction',
                ],
            ];
        }
    
        /**
         * Displays homepage.
         *
         * @return string
         */
        public function actionIndex()
        {
            return $this->render('index');
        }
    
        /**
         * Login action.
         *
         * @return string
         */
        public function actionLogin()
        {
            if (!Yii::$app->user->isGuest) {
                return $this->goHome();
            }
    
            $model = new LoginForm();
            if ($model->load(Yii::$app->request->post()) && $model->login()) {
                return $this->goBack();
            } else {
                return $this->render('login', [
                    'model' => $model,
                ]);
            }
        }
    
        /**
         * Logout action.
         *
         * @return string
         */
        public function actionLogout()
        {
            Yii::$app->user->logout();
    
            return $this->goHome();
        }
    
    
    
     
        public function actionRegister()
        {
            $model = new RegisterForm;
            
            if(!empty($_POST['RegisterForm']))
            {
                $model->attributes = $_POST['RegisterForm'];
                
                if($model->validate() && $model->register())
                    $this->redirect($this->createUrl('site/index'));
                    
            }
            
            $this->render('register', array('model'=>$model));
        }
        
    
    
    
    /*public function actionRegister() {
        $model = new RegisterForm; 
    
    if(isset($_POST['RegisterForm']))
        {
            $model->attributes=$_POST['RegisterForm'];
           
            if($model->validate()){
                      
    
                $this->redirect(Yii::app()->user->returnUrl);
                 }
    
        }
    
    $this->render('register',array('model'=>$model));
    }*/
    
    
     /*public function actionRegister() {
        $model = new RegisterForm;
    
        // if it is ajax validation request
        if(isset($_POST['ajax']) && $_POST['ajax'] === 'register-form')
        {
            echo CActiveForm::validate($model);
            app()->end();
        }
        
    }*/
    
    
    public function actionSaveRedactorImg ($sub='main')
     {
            $this -> enableCsrfValidation = false;
            if (Yii::$app->request->isPost) {
            $dir = Yii::getAlias ('@images') .'/'.$sub.'/';
            if (!file_exists($dir)){
                FileHelper::createDirectory($dir);
            }
    
    
            $result_link = str_replace('admin.','',Url::home(true)).'uploads/images/'.$sub.'/';
            $file = UploadedFile::getInstanceByName('file');
            $model = new DynamicModel (compact ('file'));
            $model ->addRule ('file', 'image')->validate();
    
            if ($model->hasErrors()) {
    
                $result = [
                'error' => $model -> getFirstError ('file')
                ];
            } else {
                  $model->file->name = strtotime('now').'_'.Yii::$app->getSecurity()->generateRandomString(6) . '.' . $model->file->extension;
    
                if ($model->file->saveAs ($dir . $model->file->name)) {
                  $imag = Yii::$app->image->load($dir . $model->file->name);
                    $imag -> resize (800, NULL, Yii\image\drivers\Image::PRECISE)
                    ->save($dir . $model->file->name, 85); 
     
                    $result = [
                    'filelink' => $result_link . $model->file->name,'filename'=>$model->file->name];
    
            } else {
    
                $result = [
                'error' => Yii::t ('vova07/imperavi', 'ERROR_CAN_NOT_UPLOAD_FILE')
                ];
    
            }
            
        }
                 Yii::$app->response->format = Response::FORMAT_JSON;
    
                return $result;
                 } else {
                    throw new BadRequestHttpException ('Only Post is allowed');
                  }
             }
         
    
    
     public function actionSaveImg ()
         
            {
    
            $this -> enableCsrfValidation = false;
            if (Yii::$app->request->isPost) {
                $post = Yii::$app->request->post();
    
            $dir = Yii::getAlias ('@images') .'/'.$post['ImageManager']['class'].'/';
            if (!file_exists($dir)){
                FileHelper::createDirectory($dir);
            }
    
    
            $result_link = str_replace('admin.','',Url::home(true)).'uploads/images/'.$post['class'].'/';
            $file = UploadedFile::getInstanceByName('ImageManager[attachment]');
            $model = new ImageManager();
            $model->name = strtotime('now').'_'.Yii::$app->getSecurity()->generateRandomString(6) . '.' . $file->extension;
            $model ->load($post);
            $model->validate();
    
             if ($model->hasErrors()) {
    
                $result = [
                'error' => $model -> getFirstError ('file')
                ];
            } else {
               if ($file->saveAs($dir . $model->name)) {
                  $imag = Yii::$app->image->load($dir . $model->name);
                    $imag -> resize (800, NULL, Yii\image\drivers\Image::PRECISE)
                    ->save($dir . $model->name, 85); 
     
                    $result = [
                    'filelink' => $result_link . $model->name,'filename'=>$model->name];
    
            } else {
    
                $result = [
                'error' => 'ошибка'
                ];
    
            }
    
            $model->save();
        
    }
          Yii::$app->response->format = Response::FORMAT_JSON;
    
                return $result;
                 } else {
                    throw new BadRequestHttpException ('Only Post is allowed');
                  }
             }
         }


    register.php (backend/views/site)

    <?php
    
    /* @var $this yii\web\View */
    /* @var $form yii\bootstrap\ActiveForm */
    /* @var $model \common\models\RegistrForm */
    
    use yii\helpers\Html;
    use yii\bootstrap\ActiveForm;
    
    $this->title = 'Регистрация';
    $this->params['breadcrumbs'][] = $this->title;
    ?>
    <div class="site-registr">
        <h1><?= Html::encode($this->title) ?></h1>
    
        <p>Пожалуйста, заполните следующие поля для регистрации.:</p>
    
        <div class="row">
            <div class="col-lg-5">
                <?php $form = ActiveForm::begin(['id' => 'form-registr']); ?>
    
                    <?= $form->field($model, 'username')->textInput(['autofocus' => true]) ?>
    
                    <?= $form->field($model, 'email') ?>
    
                    <?= $form->field($model, 'password')->passwordInput() ?>
    
                    <div class="form-group">
                        <?= Html::submitButton('Регистрация', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
                    </div>
    
                <?php ActiveForm::end(); ?>
            </div>
        </div>
    </div>
  • RBAC привязка ролей к пользователю-почему нет доступа?

    @Maila Автор вопроса
    Максим Тимофеев, а как заменить ссылку и где?
    какой конфиг?
    site\yii2\common\config\main.pgp Исключение, -это то, которое Вы предложили добавить : 'except' => ['login','error','register'] - и оно ничего не меняет.

    И обычно в админках нет регистрации. Пользователей добавляет админ.
    Во fronted также нет регистрации, и вкладка Signup не открывается.
  • RBAC привязка ролей к пользователю-почему нет доступа?

    @Maila Автор вопроса
    Максим Тимофеев, эта страница открывается при нажатии 'Register a new membership' в adminLTE' , если добавить такое исключение в config, то ничего не меняется. c778fefaf8fa4a37a806d1b3aefa37b4.jpgff1b713995af4a1ebc01fc04260f2fa0.jpg

    И если зайти на site.com/site/login то там всего два поля в регистрации: 'username' и 'password', а 'email' - нет т.е. зарегистрироваться нельзя.
  • RBAC привязка ролей к пользователю-почему нет доступа?

    @Maila Автор вопроса
    Максим Тимофеев,
    в auth_assignment - ничего нет
    Сейчас там есть только админ как в 'users', но другие пользователи пока не могут зарегистрироваться.94750d68447f4a86b7aded5c36c51a62.jpg
    если надо закрыть доступ ко всей админке, то в ее конфиге можно поступить так:

    Да, мне хотелось бы, чтобы был доступ только для админа и контент-менеджера в backend, только не совсем понятно, как зарегистрировать нового пользователя? Там сейчас ошибка 404 на admin.site.com/site/register.html
    В confige -это в site\yii2\common\config\main.pgp ? main.php
    <?php
    return [
        'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
        'timeZone' => 'Europe/Moscow',
        'components' => [
            'cache' => [
                'class' => 'yii\caching\FileCache',
                /* 'robotEmail' => '',*/
                /*'robotName' => 'Robot'*/
            ],
                
             'image' => [
            	 	'class' => 'yii\image\ImageDriver',
            		'driver' => 'GD',  //GD or Imagick
            		],
                    
            'authManager' => [
                'class' => 'yii\rbac\DbManager',
                'cache' => 'cache'
            ],
        
        ],
        'on beforeAction' => function($event){ //цепляемся за событие перед запуском экшена
          Yii::$app->controller->attachBehavior('',[ //цепляем к текущему контролеру поведение
              'class' => \yii\filters\AccessControl::className(), //указываем класс поведения
              'except' => ['login','error'], //исключим из правила экшены login и error, так как они должны быть доступны всем
              'rules' => [
                  [
                      'allow' => true, //разрешаем доступ
                      'roles' => ['admin'], //'@' только зарегистрированным пользователям или замените на 'admin',  что бы только админам позволить
                  ],
              ],
          ]);
        },
    ];