Example #1
0
 public function afterFind()
 {
     parent::afterFind();
     $empresasUsuarios = EmpresasUsuarios::findAll(['usuario_id' => $this->id]);
     $this->empresa_id = \yii\helpers\ArrayHelper::getColumn($empresasUsuarios, 'empresa_id');
     $this->user_role = \yii\helpers\ArrayHelper::getColumn(Yii::$app->authManager->getRolesByUser($this->id), 'name');
 }
Example #2
0
 public function contaEmpresas()
 {
     if (Yii::$app->session->get('empresa') == NULL) {
         $empresasUsuarios = EmpresasUsuarios::findAll(['usuario_id' => Yii::$app->user->getId()]);
         if (count($empresasUsuarios) == 1) {
             Yii::$app->session->set("empresa", $empresasUsuarios[0]->empresa_id);
             Yii::$app->session->set("empresa_nome", $empresasUsuarios[0]['empresa']->nome_fantasia);
             return $this->goHome();
         } else {
             return $this->redirect(['site/escolha-empresa']);
         }
     } else {
         return $this->goHome();
     }
 }
 /**
  * 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)
 {
     $model = $this->findModel($id);
     if (Yii::$app->request->post()) {
         $transaction = User::getDb()->beginTransaction();
         try {
             $model->load(Yii::$app->request->post());
             $password = $_POST['User']['password'];
             if ($password != "") {
                 $model->setPassword($password);
             }
             $model->generateAuthKey();
             if ($model->save()) {
                 EmpresasUsuarios::deleteAll(['usuario_id' => $model->id]);
                 foreach (Yii::$app->request->post()['User']['empresa_id'] as $emp_id) {
                     $modelEmpresasUsuarios = new EmpresasUsuarios();
                     $modelEmpresasUsuarios->empresa_id = $emp_id;
                     $modelEmpresasUsuarios->usuario_id = $model->id;
                     if (!$modelEmpresasUsuarios->save()) {
                         throw new Exception('Não foi possível salvar uma das empresas!');
                     }
                 }
                 $auth = Yii::$app->authManager;
                 $auth->revokeAll($model->id);
                 $userRole = $auth->getRole(Yii::$app->request->post()['User']['user_role']);
                 $auth->assign($userRole, $model->id);
                 $transaction->commit();
                 return $this->redirect(['view', 'id' => $model->id]);
             } else {
                 throw new Exception('Não foi possível salvar o usuário!');
             }
         } catch (Exception $e) {
             $transaction->rollBack();
             throw new HttpException(400, '$e');
         }
     } else {
         return $this->render('update', ['model' => $model]);
     }
 }