/** * 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]); } }
/** * 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]); } }
/** * 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); } }