using System; using System.Collections.Generic; using System.ServiceModel; using System.Threading; using System.Threading.Tasks; using Aitex.Core.Util; using MECF.Framework.Common.Account.Extends; using MECF.Framework.Common.Account.Permissions; using MECF.Framework.Common.CommonData; namespace Aitex.Core.Account { [ServiceKnownType(typeof(CredentialKeepAliveStates))] [ServiceKnownType(typeof(CredentialState))] [ServiceKnownType(typeof(LoginRequestResults))] [ServiceKnownType(typeof(MenuPermissionEnum))] [ServiceKnownType(typeof(NotifiableItem))] [ServiceKnownType(typeof(Role))] [ServiceKnownType(typeof(List))] [ServiceKnownType(typeof(AppMenu))] [ServiceKnownType(typeof(List))] [ServiceKnownType(typeof(Credential))] [ServiceKnownType(typeof(LoginClientInfo))] [ServiceKnownType(typeof(AccountEx))] [ServiceKnownType(typeof(LoginResult))] [ServiceKnownType(typeof(CredentialKeepAliveCheckResult))] [ServiceKnownType(typeof(CancellationTokenSource))] [ServiceContract] public interface IAccountService { #region Common Operations /// /// 注册视图。 /// /// [OperationContract] void RegisterViews(List views); /// /// 获取所有视图。 /// /// [OperationContract] SerializableDictionary GetAllViewList(); /// /// TBD /// /// [OperationContract] string GetProcessViewPermission(); /// /// TBD /// /// /// [OperationContract] bool SaveProcessViewPermission(string viewXML); /// /// 获取系统支持的所有菜单。 /// /// [OperationContract] List GetAllMenus(); #endregion #region Permission Operations /// /// 获取指定角色ID和菜单名称的访问权限。 /// /// 角色ID /// 菜单名称 /// [OperationContract] MenuPermissionEnum GetMenuPermission(string roleId, string menuName); /// /// 保存所有角色的权限。 /// /// /// [OperationContract] bool SaveAllRolesPermission(Dictionary> data); #endregion #region Role Operations /// ///获取包含超级角色的角色列表。 /// /// [OperationContract] IEnumerable GetRolesIncludeSuper(); /// /// 获取不包含超级角色的角色列表。 /// /// [OperationContract] List GetRoles(); /// /// 获取指定ID的角色。 /// /// /// [OperationContract] Role GetRoleByID(string id); /// /// 获取指定名称的角色。 /// /// /// [OperationContract] Role GetRoleByName(string name); /// /// 更新指定的角色。 /// /// 角色信息 /// [OperationContract] bool UpdateRole(Role role); /// /// 删除指定的角色。 /// /// 角色ID /// [OperationContract] bool DeleteRole(string roleId); /// /// 获取指定角色的可访问菜单列表。 /// /// /// [OperationContract] List GetAccessibleMenusByRole(string roleId); /// /// 获取一个可用的角色ID。 /// /// [OperationContract] string GetAvailableRoleID(); /// /// 检查指定名称的角色是否存在;如果存在,它们的ID是否相同,如果ID不同,则表示当前角色名称已存在,不允许保存。 /// /// /// /// [OperationContract] bool CheckRoleNotDuplicated(string id, string name); #endregion #region Account Operations /// /// 获取指定账号信息。 /// /// 账号ID /// [OperationContract] GetAccountInfoResult GetAccountInfo(string accountId); /// /// 获取包含超级账号的列表。 /// /// [OperationContract] List GetAccountsIncludeSuper(); /// /// 获取账号列表。 /// /// [OperationContract] List GetAccounts(); /// /// 创建账号。 /// /// 新账号 /// [OperationContract] CreateAccountResult CreateAccount(Account newAccount); /// /// 删除账号。 /// /// 账号ID /// [OperationContract] DeleteAccountResult DeleteAccount(string accountId); /// /// 更新指定的账号。 /// /// 账号信息 /// [OperationContract] UpdateAccountResult UpdateAccount(Account account); /// /// 更新指定的账号。 /// /// 账号 /// [OperationContract] bool UpdateAccountEx(AccountEx account); /// /// 删除指定的账号。 /// /// 账号名 /// [OperationContract] bool DeleteAccountEx(string loginName); /// /// 修改账号密码。 /// /// 账号ID /// 新密码 /// [OperationContract] ChangePwdResult ChangePassword(string accountId, string newPassword); /// /// 校验指定账户的密码。 /// /// /// /// [OperationContract] bool CheckPassword(string accountId, string passwordMD5); /// /// 获取登录用户列表。 /// /// [OperationContract] List GetLoginUsers(); /// /// 踢出指定的账号。 /// /// 账号ID /// 踢出原因 [OperationContract] void KickUserOut(string accountId, string reason); #endregion #region Login/Logout Operations /// /// 登录RT。 /// /// 用户名 /// 密码 /// 角色ID /// 登录客户端信息 /// [OperationContract] Task LoginEx(string userName, string password, string roleID, LoginClientInfo clientInfo); /// /// 注销登录。 /// /// 当前登录的令牌 [OperationContract] void LogoutEx(Guid myToken); /// /// 取消登录请求。 /// /// [OperationContract] void CancelLoginRequest(string userName); /// /// 确认异地登录请求。 /// /// 正在请求登录的令牌 [OperationContract] void ConfirmLoginRequest(string userName); /// /// 拒绝异地登录请求。 /// /// 正在请求登录的令牌 [OperationContract] void RejectLoginRequest(string userName); /// /// 激活凭据。 /// /// 当前登录的令牌 /// [OperationContract] CredentialKeepAliveCheckResult KeepAlive(Guid myToken); #endregion } }