예제 #1
0
 /**
  * Updates an existing User model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $modelUser = $this->findModel($id);
     if (Yii::$app->request->post('User')) {
         //
         Role::deleteAll(['user_id' => $id]);
         if (Yii::$app->request->post('User')['item_name'] == '') {
             $sendRoles[] = 'Пользователь';
         } else {
             $sendRoles = Yii::$app->request->post('User')['item_name'];
         }
         //
         foreach ($sendRoles as $one) {
             $model = new Role();
             $model->item_name = $one;
             $model->user_id = $id;
             $model->created_at = time();
             $model->save();
         }
     }
     if ($modelUser->load(Yii::$app->request->post()) && $modelUser->save()) {
         return $this->redirect(['view', 'id' => $modelUser->id]);
     } else {
         $value = ArrayHelper::map($modelUser->role, "item_name", "item_name");
         $allRoles = [];
         foreach (AuthItem::getRoles() as $item_name) {
             if ($item_name->name != 'Создатель') {
                 $allRoles[$item_name->name] = $item_name->name;
             }
         }
         return $this->render('update', ['modelUser' => $modelUser, 'allRoles' => $allRoles, 'value' => $value]);
     }
 }
예제 #2
0
 /**
  * Creates a new User model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  *
  * @return string|\yii\web\Response
  */
 public function actionCreate()
 {
     $user = new User(['scenario' => 'create']);
     $role = new Role();
     if ($user->load(Yii::$app->request->post()) && $role->load(Yii::$app->request->post()) && Model::validateMultiple([$user, $role])) {
         $user->setPassword($user->password);
         $user->generateAuthKey();
         if ($user->save()) {
             $role->user_id = $user->getId();
             $role->save();
         }
         return $this->redirect('index');
     } else {
         return $this->render('create', ['user' => $user, 'role' => $role]);
     }
 }
예제 #3
0
 /**
  * Set user role assigment if it not set in auth_assignment
  */
 public static function checkRoleAssignment()
 {
     $user = Yii::$app->getUser()->getIdentity();
     $id = $user->getId();
     if (empty($id)) {
         return;
     }
     if (null === Role::findOne(['user_id' => $id])) {
         $role = new Role();
         $role->item_name = $user->user_role;
         $role->user_id = $id;
         $role->save(false);
     }
 }