FMPUser

interface FMPUser

Представляет пользователя FMP. FMP поддерживает многопользовательский режим. Для параллельной работы нескольких пользователей требуется создание объектов FMP для каждого пользователя.

Since

21.04.01

Samples

ru.fsight.fmp.doc.sample.userCreate
import ru.fsight.fmp.*
import ru.fsight.fmp.exception.*
fun main() { 
   //sampleStart 
   /*
 * Пример аутентификации по паролю.
 */
// Выполняем попытку аутентификации по паролю.
val auth_password: FMPResult<Boolean> = user.auth()

if (auth_password.result) {
	// Успешная аутентификация по паролю.
} else {
	// Ошибка аутентификации.
	when (auth_password.exception) {
		is UnauthorizedException -> { /* Неверный пароль. */ }
		is NetworkIOException    -> { /* Ошибка подключения к серверу. */ }
		is ServerException       -> { /* Ошибка на сервере. */ }
		else                     -> { /* Иная ошибка. */ }
	}
} 
   //sampleEnd
}
import ru.fsight.fmp.*
import ru.fsight.fmp.exception.*
fun main() { 
   //sampleStart 
   /*
 * Пример аутентификации по токену.
 */
// Для начала требуется хотя бы раз успешно аутентифицироваться по паролю.

// Выполняем попытку аутентификации по токену.
val auth_token: FMPResult<Boolean> = user.auth()

if (auth_token.result) {
	// Успешная аутентификация по токену.
} else {
	// Ошибка использования токенов.
	when (auth_token.exception) {
		is UnauthorizedException  -> { /* Устаревший токен. */ }
		is NoCredentialsException -> { /* Токена нет, т.е. не было входа по паролю. */ }
		is NetworkIOException     -> { /* Ошибка подключения к серверу. */ }
		is ServerException        -> { /* Ошибка на сервере. */ }
		else                      -> { /* Иная ошибка. */ }
	}
} 
   //sampleEnd
}
import ru.fsight.fmp.*
import ru.fsight.fmp.exception.*
fun main() { 
   //sampleStart 
   /*
 * Пример отмены аутентификации (удаления токенов).
 */
val revoke: Boolean =
	user.revoke().result // Отменить аутентификацию пользователя. Это также удаляет все его токены, но не трогает данные. 
   //sampleEnd
}
import ru.fsight.fmp.*
import ru.fsight.fmp.exception.*
fun main() { 
   //sampleStart 
   /*
 * Аутентификация со сменой пароля.
 */
val change: FMPResult<Boolean> = user.changePassword("old", "new") // Провести попытку аутентификации со сменой пароля.
val is_changed: Boolean = change.result    // Если true, то пользователь аутентифицирован и пароль изменён.
val error: Exception? = change.exception // Если возникла ошибка, тут будет содержимое ошибки. 
   //sampleEnd
}
ru.fsight.fmp.doc.sample.userMultiple
import ru.fsight.fmp.*
import ru.fsight.fmp.exception.*
fun main() { 
   //sampleStart 
   /*
 * Пример параллельной работы нескольких пользователей.
 */
val builder: FMP.Builder =
	FMP.Builder()
		.api(FMP.API.V2)
		.address("https://example.com")
		.environment("env1")
		.project("proj1")
		.deviceID("test")
		.storage("/path/to/storage")

// Создаём FMP для первого пользователя.
val user1 = builder.username("user1").build()

// Создаём FMP для второго пользователя.
val user2 = builder.username("user2").build()

/* Пользователя user1 и user2 могут выполнять работу одновременно. */ 
   //sampleEnd
}

Properties

Link copied to clipboard
abstract val cache: String

Путь к папке кэша пользователя.

Link copied to clipboard
abstract val storage: String

Путь к папке с файлами пользователя.

Link copied to clipboard
abstract val token: String

Токен пользователя.

Link copied to clipboard
abstract val username: String

Имя пользователя.

Functions

Link copied to clipboard
abstract fun auth(): FMPResult<Boolean>

Выполнить попытку аутентификации на сервере по токену.

abstract fun auth(password: String): FMPResult<Boolean>

Выполнить попытку аутентификации на сервере по паролю.

Link copied to clipboard
abstract fun changePassword(old: String, new: String): FMPResult<Boolean>

Попытаться изменить пароль пользователя. Смена пароля выполняет auth, поэтому не обязательно выполнять аутентификацию до или после смены пароля.

Link copied to clipboard

Загрузить схему ресурсов вручную. Ресурсы необходимы перед использованием FMPQuery.download и FMPResource.download, но обычно делается автоматически после аутентификации. Вручную может потребоваться обновление, если структура данных на сервере поменялась во время работы приложения.

Link copied to clipboard

Получить список доступных пользователю ресурсов. Для получения метаданных ресурса используется FMPResource.getMeta.

Link copied to clipboard
abstract fun revoke(): FMPResult<Boolean>

Отменить аутентификацию пользователя. Удаляет все токены пользователя, но не изменяет данные пользователя.

Link copied to clipboard
abstract fun wipe(): FMPResult<Boolean>

Удалить все данные пользователя. Удаляются только данные из внутренней директории пользователя, которая содержит в себе cache и storage. Также удаляются все данные фреймворка пользователя, включая аутентификацию.

Link copied to clipboard
abstract fun wipeCache(): FMPResult<Boolean>

Удалить кэш пользователя. Удаляются только данные по пути cache.

Link copied to clipboard
abstract fun wipeStorage(): FMPResult<Boolean>

Удалить файлы пользователя. Удаляются только данные по пути storage.