tina-core 0.0.2

Tina platform
Documentation
//! 登录用户身份权限

use indexmap::IndexSet;
use serde::{Deserialize, Serialize};
use serde_json::Value;

use crate::tina::{data::id::Id, util::string::AsStr};

/// 登录用户身份权限
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LoginUser {
    /// 用户ID
    pub user_id: Option<Id>,
    /// 用户名
    pub user_name: Option<String>,
    /// 用户唯一标识
    pub token: Option<String>,
    /// 登录时间
    pub login_time: Option<i64>,
    /// 过期时间
    pub expire_time: Option<i64>,
    /// 登录IP地址
    pub ipaddr: Option<String>,
    /// 登录地点
    pub login_location: Option<String>,
    /// 设备类型
    pub device: Option<String>,
    /// 操作系统
    pub os: Option<String>,
    /// 权限列表
    pub permissions: Option<IndexSet<String>>,
    /// 用户信息
    pub user: Option<Value>,
}

impl LoginUser {
    /// 获取用户名
    pub fn get_username(&self) -> &str {
        self.user_name.as_str()
    }
}