| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- namespace app\controllers;
- use Yii;
- use app\models\RegistrationForm;
- use yii\filters\AccessControl;
- use app\models\Messages;
- use dektrium\user\controllers\RegistrationController as BaseRegistrationController;
- class RegistrationController extends BaseRegistrationController
- {
- public function behaviors()
- {
- return [
- 'access' => [
- 'class' => AccessControl::class,
- 'rules' => [
- ['allow' => true, 'actions' => ['register', 'connect'], 'roles' => ['?']],
- ['allow' => true, 'actions' => ['confirm', 'resend'], 'roles' => ['@']],
- ],
- ],
- ];
- }
- public function actionRegister()
- {
- $model = Yii::createObject(RegistrationForm::class);
- $this->performAjaxValidation($model);
- if ($model->load(Yii::$app->request->post())) {
- Yii::debug('Form data: ' . print_r(Yii::$app->request->post(), true), __METHOD__);
- if ($user = $model->register()) {
- // Создаем директорию для пользователя
- @mkdir(Yii::$app->params['uploadPath'] . $user->id, 0777, true);
- // Устанавливаем роль
- $authManager = Yii::$app->authManager;
- $role = $model->role == 1 ? 'org' : 'member';
- $userRole = $authManager->getRole($role);
- if ($userRole) {
- $authManager->assign($userRole, $user->id);
- } else {
- Yii::error("Role '$role' not found", __METHOD__);
- }
- // Создаем сообщение
- Yii::createObject(Messages::class)->CreateMessage([
- 'user_id' => 23,
- 'notes' => Yii::t('app', 'User Registered ID: {name}', ['name' => $model->at_org]),
- ]);
- // Выход и редирект
- Yii::$app->user->logout();
- Yii::$app->session->setFlash('info', Yii::t('app', 'You must relogin for apply changes'));
- return $this->redirect('/user/login');
- } else {
- Yii::error('Registration failed', __METHOD__);
- }
- }
- return $this->render('register', [
- 'model' => $model,
- 'module' => $this->module,
- ]);
- }
- public function actions()
- {
- return [
- 'error' => [
- 'class' => 'yii\web\ErrorAction',
- ],
- 'captcha' => [
- 'class' => 'yii\captcha\CaptchaAction',
- ],
- ];
- }
- }
|