public function login() { if ($this->validate()) { $dbUsuario = Usuario::find()->where('nombre = :user', [':user' => $this->usuario])->one(); if (count($dbUsuario) <= 0) { $this->addError('usuario', 'El usuario ingresado no existe'); return false; } else { //->innerJoinWith('codPersona',false) $dbPersona = Persona::find()->where('nombre_usuario = :user', [':user' => $this->usuario])->andWhere('estado = :estado', [':estado' => 'Activo'])->one(); if (count($dbPersona) <= 0) { //Esto me quiere decir que el usuario existe, pero o no esta asociado a ningun empleado o su estado es diferente de activo $this->addError('usuario', 'El usuario ingresado no está asociado con ninguna persona o se encuentra inactivo'); return false; } else { if (hash('sha512', $this->password . $dbUsuario->salt) === $dbUsuario->contrasenya) { $nombrePersona = $dbUsuario->persona->nombre . ' ' . $dbUsuario->persona->apellido; Yii::$app->session->setFlash('success', '¡Bienvenid@! ' . $nombrePersona); return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); } else { $this->addError('password', 'La contraseña ingresada es errónea'); return false; } } } } else { return false; } }
?> <?php echo $form->field($model, 'cod_estado_civil')->dropDownList(ArrayHelper::map(EstadoCivil::find()->all(), 'codigo', 'nombre')); ?> <?php if ($model->isNewRecord) { echo $form->field($model, 'nombre_usuario')->dropDownList(ArrayHelper::map(Usuario::find()->where('NOT EXISTS ( SELECT nombre_usuario FROM persona WHERE persona.nombre_usuario = usuario.nombre )')->all(), 'nombre', 'nombre'), ['prompt' => 'Seleccione un usuario']); } else { echo $form->field($model, 'nombre_usuario')->dropDownList(ArrayHelper::map(Usuario::find()->all(), 'nombre', 'nombre'), ['prompt' => 'Seleccione un usuario']); } ?> <?php echo $form->field($model, 'carnet_minoridad')->textInput(['maxlength' => true]); ?> <?php echo '<div class="cflex">'; echo '<span style="order: 1; flex-grow: 1; margin-right:10px;">'; if ($model->isNewRecord) { echo Html::label('Es Informante', 'esinfor'); echo Html::radioList('informante', 'No', ['Si' => 'Si', 'No' => 'No'], ['id' => 'esinfor']); echo Html::label('Firma', 'firin'); echo Html::fileInput('firma', null, ['id' => 'firin', 'enable' => false, 'class' => 'form-control']);