rsiot/components/cmp_auth/config.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
use crate::message::*;
/// Конфигурация
#[derive(Clone)]
pub struct Config {
/// Секретный ключ для валидации токенов
pub secret_key: String,
/// Хранилище данных доступа
///
/// **Примеры**
///
/// ```rust
#[doc = include_str!("./test/config_store.rs")]
/// ```
pub store: ConfigStore,
}
impl Default for Config {
fn default() -> Self {
Self {
secret_key: Default::default(),
store: ConfigStore::Local(vec![]),
}
}
}
/// Тип хранилища данных доступа
#[derive(Clone)]
pub enum ConfigStore {
/// Локальное сохранение - в коде
Local(Vec<ConfigStoreLocalItem>),
/// В базе данных SurrealDB
Surrealdb,
}
/// Запись данных авторизации для одного пользователя
#[derive(Clone)]
pub struct ConfigStoreLocalItem {
/// Логин
pub login: String,
/// Пароль
pub password: String,
/// Роль
pub role: AuthPermissions,
}