getModule('usuario')->tablaUsuarios; } /** * @return array validation rules for model attributes. */ public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs.CConsoleApplication return ((get_class(Yii::app()) == 'CConsoleApplication' || (get_class(Yii::app()) != 'CConsoleApplication' && Yii::app()->getModule('usuario')->isAdmin())) ? array( array('username, password, email, superusuario, estado', 'required'), array('username', 'length', 'max' => 20, 'min' => 3, 'message' => UsuarioModule::t("Incorrect username (length between 3 and 20 characters).")), array('password', 'length', 'max' => 128, 'min' => 4, 'message' => UsuarioModule::t("Incorrect password (minimal length 4 symbols).")), array('email', 'email'), array('username', 'unique', 'message' => UsuarioModule::t("This user's name already exists.")), array('email', 'unique', 'message' => UsuarioModule::t("This user's email address already exists.")), array('username', 'match', 'pattern' => '/^[A-Za-z0-9_]+$/u', 'message' => UsuarioModule::t("Incorrect symbols (A-z0-9).")), array('estado', 'in', 'range' => array(self::ESTADO_NOACTIVO, self::ESTADO_ACTIVO, self::ESTADO_BLOQUEADO)), array('superusuario', 'in', 'range' => array(0, 1)), array('fecha_registro', 'default', 'value' => date('Y-m-d H:i:s'), 'setOnEmpty' => true, 'on' => 'insert'), array('ultima_visita', 'default', 'value' => '0000-00-00 00:00:00', 'setOnEmpty' => true, 'on' => 'insert'), array('superusuario, estado', 'numerical', 'integerOnly' => true), array('id, username, password, email, clave_activacion, fecha_registro, ultima_visita, superusuario, estado', 'safe', 'on' => 'search'), ) : ((Yii::app()->user->id == $this->id) ? array( array('username, password, email', 'required'), array('username', 'length', 'max' => 20, 'min' => 3, 'message' => UsuarioModule::t("Incorrect username (length between 3 and 20 characters).")), array('email', 'email'), array('username', 'unique', 'message' => UsuarioModule::t("This user's name already exists.")), array('username', 'match', 'pattern' => '/^[A-Za-z0-9_]+$/u', 'message' => UsuarioModule::t("Incorrect symbols (A-z0-9).")), array('email', 'unique', 'message' => UsuarioModule::t("This user's email address already exists.")), ) : array())); } /** * @return array relational rules. */ public function relations() { $relations = Yii::app()->getModule('usuario')->relations; if (!isset($relations['perfil'])) $relations['perfil'] = array(self::HAS_ONE, 'Perfil', 'usuario_id'); return $relations; } /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'id' => UsuarioModule::t("Id"), 'username' => UsuarioModule::t("Usuario"), 'password' => UsuarioModule::t("Contraseña"), 'confirmacion_password' => UsuarioModule::t("Confirmación de contraseña"), 'email' => UsuarioModule::t("E-mail"), 'codigo_verificacion' => UsuarioModule::t("Código de verificación"), 'clave_activacion' => UsuarioModule::t("Clave de activación"), 'fecha_registro' => UsuarioModule::t("Fecha de registro"), 'ultima_visita' => UsuarioModule::t("Última visita"), 'superusuario' => UsuarioModule::t("Superusuario"), 'estado' => UsuarioModule::t("Estado"), ); } public function scopes() { return array( 'activo' => array( 'condition' => 'estado=' . self::ESTADO_ACTIVO, ), 'inactivo' => array( 'condition' => 'estado=' . self::ESTADO_NOACTIVO, ), 'bloqueado' => array( 'condition' => 'estado=' . self::ESTADO_BLOQUEADO, ), 'superusuario' => array( 'condition' => 'superusuario=1', ), 'notsafe' => array( 'select' => 'id, username, password, email, clave_activacion, fecha_registro, ultima_visita, superusuario, estado', ), ); } public function defaultScope() { return CMap::mergeArray(Yii::app()->getModule('usuario')->defaultScope, array( 'alias' => 'usuario', 'select' => 'usuario.id, usuario.username, usuario.email, usuario.fecha_registro, usuario.ultima_visita, usuario.superusuario, usuario.estado', )); } public static function itemAlias($type, $code = NULL) { $_items = array( 'UserStatus' => array( self::ESTADO_NOACTIVO => UsuarioModule::t('Inactivo'), self::ESTADO_ACTIVO => UsuarioModule::t('Activo'), self::ESTADO_BLOQUEADO => UsuarioModule::t('Bloqueado'), ), 'AdminStatus' => array( '0' => UsuarioModule::t('No'), '1' => UsuarioModule::t('Sí'), ), ); if (isset($code)) return isset($_items[$type][$code]) ? $_items[$type][$code] : false; else return isset($_items[$type]) ? $_items[$type] : false; } /** * Retrieves a list of models based on the current search/filter conditions. * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. */ public function search() { // Warning: Please modify the following code to remove attributes that // should not be searched. $criteria = new CDbCriteria; $criteria->compare('id', $this->id); $criteria->compare('username', $this->username, true); $criteria->compare('password', $this->password); $criteria->compare('email', $this->email, true); $criteria->compare('clave_activacion', $this->clave_activacion); $criteria->compare('fecha_registro', $this->create_at); $criteria->compare('ultima_visita', $this->lastvisit_at); $criteria->compare('superusuario', $this->superusuario); $criteria->compare('estado', $this->estado); return new CActiveDataProvider(get_class($this), array( 'criteria' => $criteria, 'pagination' => array( 'pageSize' => Yii::app()->getModule('usuario')->user_page_size, ), )); } public function getCreatetime() { return strtotime($this->fecha_registro); } public function setCreatetime($value) { $this->fecha_registro = date('Y-m-d H:i:s', $value); } public function getLastVisit() { return strtotime($this->ultima_visita); } public function setLastvisit($value) { $this->ultima_visita = date('Y-m-d H:i:s', $value); } public function afterSave() { if (get_class(Yii::app()) == 'CWebApplication' && Perfil::$regMode == false) { Yii::app()->user->updateSession(); } return parent::afterSave(); } }