/** * Creates a new Assignment model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Assignment(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'user' => $model->user, 'role' => $model->role]); } else { return $this->render('create', ['model' => $model]); } }
public function actionRole($user) { $userRoles = Assignment::find()->select('role')->where(['user' => $user])->indexBy('role')->all(); if (\Yii::$app->request->isPost) { $selectedRoles = LuLu::getPostValue('roles', []); Assignment::deleteAll(['and', 'user=\'' . $user . '\'', ['not in', 'role', $selectedRoles]]); foreach ($selectedRoles as $selectedRole) { if ($userRoles != null && isset($userRoles[$selectedRole])) { continue; } $newAssignment = new Assignment(); $newAssignment->user = $user; $newAssignment->role = $selectedRole; $newAssignment->save(); } return $this->redirect(['role', 'user' => $user]); } $allRoles = Role::findAll(); return $this->render('role', ['userRoles' => $userRoles, 'allRoles' => $allRoles]); }