/** * Actualiza los datos de los usuarios de LDAP en la BBDD. * * @return bool */ public static function updateLDAPUserInDB(User $User) { $passdata = UserPass::makeUserPassHash($User->getUserPass()); $query = 'UPDATE usrData SET ' . 'user_pass = :pass,' . 'user_hashSalt = :hashSalt,' . 'user_name = :name,' . 'user_email = :email,' . 'user_lastUpdate = NOW(),' . 'user_isLdap = 1 ' . 'WHERE user_id = :id LIMIT 1'; $data['pass'] = $passdata['pass']; $data['hashSalt'] = $passdata['salt']; $data['name'] = $User->getUserName(); $data['email'] = $User->getUserEmail(); $data['id'] = UserUtil::getUserIdByLogin($User->getUserLogin()); return DB::getQuery($query, __FUNCTION__, $data); }
/** * Comprobar si el usuario tiene actualizada la clave maestra actual. * * @param string $login opcional con el login del usuario * @return bool */ public static function checkUserUpdateMPass($login = null) { $userId = !is_null($login) ? UserUtil::getUserIdByLogin($login) : Session::getUserId(); if ($userId === 0) { return false; } $configMPassTime = ConfigDB::getValue('lastupdatempass'); if ($configMPassTime === false) { return false; } $query = 'SELECT user_lastUpdateMPass FROM usrData WHERE user_id = :id LIMIT 1'; $data['id'] = $userId; $queryRes = DB::getResults($query, __FUNCTION__, $data); $ret = $queryRes !== false && $queryRes->user_lastUpdateMPass > $configMPassTime; return $ret; }
/** * Insertar un registro de recuperaciĆ³n de clave. * * @param string $login con el login del usuario * @param string $hash con el hash para el cambio * @return bool */ public static function addPassRecover($login, $hash) { $query = 'INSERT INTO usrPassRecover SET ' . 'userpassr_userId = :userId,' . 'userpassr_hash = :hash,' . 'userpassr_date = UNIX_TIMESTAMP(),' . 'userpassr_used = 0'; $data['userId'] = UserUtil::getUserIdByLogin($login); $data['hash'] = $hash; return DB::getQuery($query, __FUNCTION__, $data); }
/** * Analizar la cadena de consulta por eqituetas especiales y devolver un array * con las columnas y los valores a buscar. * * @return array|bool */ private function analyzeQueryString() { preg_match('/:(user|group|file)\\s(.*)/i', $this->_txtSearch, $filters); if (!is_array($filters) || count($filters) === 0) { return false; } switch ($filters[1]) { case 'user': return array('account_userId' => UserUtil::getUserIdByLogin(Html::sanitize($filters[2])), 'accuser_userId' => UserUtil::getUserIdByLogin(Html::sanitize($filters[2]))); break; case 'group': return array('account_userGroupId' => Groups::getGroupIdByName(Html::sanitize($filters[2])), 'accgroup_groupId' => Groups::getGroupIdByName(Html::sanitize($filters[2]))); break; case 'file': return array('accfile_name' => Html::sanitize($filters[2])); break; default: return false; } }