using JNPF.Common.Models.Authorize; using JNPF.Common.Models.User; using JNPF.Systems.Entitys.Permission; using SqlSugar; namespace JNPF.Common.Core.Manager; /// /// 用户管理抽象. /// public interface IUserManager { /// /// 用户编号. /// string UserId { get; } /// /// 登录类型 /// string LoginType { get; } /// /// 用户角色. /// List Roles { get; } /// /// 数据库连接. /// ConnectionConfigOptions ConnectionConfig { get; } /// /// 租户ID. /// string TenantId { get; } /// /// 租户数据库名称. /// string TenantDbName { get; } /// /// 用户账号. /// string Account { get; } /// /// 用户昵称. /// string RealName { get; } /// /// 当前用户 ToKen. /// string ToKen { get; } /// /// 是否管理员. /// bool IsAdministrator { get; } /// /// 获取请求端类型 pc 、 app. /// string UserOrigin { get; } /// /// 获取用户的数据范围. /// List DataScope { get; } /// /// 用户当前组织及子组织. /// List Subsidiary { get; } /// /// 当前用户下属. /// List Subordinates { get; } /// /// 用户信息. /// UserEntity User { get; } /// /// 获取用户登录信息. /// /// Task GetUserInfo(); /// /// 获取数据条件. /// /// 实体. /// 模块ID. /// 表主键. /// 是否开启数据权限. /// 联表编号. /// Task> GetConditionAsync(string moduleId, string primaryKey = "F_Id", bool isDataPermissions = true, string tableNumber = "") where T : new(); /// /// 获取数据条件(带副表) . /// /// 实体. /// 模块ID. /// 表主键. /// 是否开启数据权限. /// Task> GetDataConditionAsync(string moduleId, string primaryKey, bool isDataPermissions = true) where T : new(); /// /// 获取数据条件(在线开发专用). /// /// 实体. /// 表主键. /// 模块ID. /// 是否开启数据权限. /// Task> GetCondition(string primaryKey, string moduleId, bool isDataPermissions = true) where T : new(); /// /// 获取代码生成数据条件. /// /// 实体. /// 模块ID. /// 表主键. /// 是否开启数据权限. /// Task> GetCodeGenAuthorizeModuleResource(string moduleId, string primaryKey, bool isDataPermissions = true) where T : new(); /// /// 获取角色名称 根据 角色Ids. /// /// /// Task GetRoleNameByIds(string ids); /// /// 根据角色Ids和组织Id 获取组织下的角色以及全局角色. /// /// 角色Id集合. /// 组织Id. /// Task> GetUserOrgRoleIds(string roleIds, string organizeId); /// /// 判断是否管理员. /// /// /// bool IsAdmin(string userId); /// /// 获取管理员用户id. /// string GetAdminUserId(); /// /// 域名 /// string Domain{ get; } }