Sic.Framework-Nanjing-Baishi/MECF.Framework.Common/Aitex/Core/Account/IAccountService.cs

291 lines
8.0 KiB
C#

using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Threading.Tasks;
using Aitex.Core.Util;
using MECF.Framework.Common.Account.Extends;
namespace Aitex.Core.Account
{
[ServiceKnownType(typeof(CredentialKeepAliveStates))]
[ServiceKnownType(typeof(CredentialState))]
[ServiceKnownType(typeof(LoginRequestResults))]
[ServiceKnownType(typeof(Credential))]
[ServiceKnownType(typeof(LoginClientInfo))]
[ServiceKnownType(typeof(AccountEx))]
[ServiceKnownType(typeof(LoginResult))]
[ServiceKnownType(typeof(CredentialKeepAliveCheckResult))]
[ServiceContract]
public interface IAccountService
{
#region Common Operations
/// <summary>
/// 注册视图。
/// </summary>
/// <param name="views"></param>
[OperationContract]
void RegisterViews(List<string> views);
/// <summary>
/// 获取所有视图。
/// </summary>
/// <returns></returns>
[OperationContract]
SerializableDictionary<string, string> GetAllViewList();
/// <summary>
/// TBD
/// </summary>
/// <returns></returns>
[OperationContract]
string GetProcessViewPermission();
/// <summary>
/// TBD
/// </summary>
/// <param name="viewXML"></param>
/// <returns></returns>
[OperationContract]
bool SaveProcessViewPermission(string viewXML);
/// <summary>
/// 获取系统支持的所有菜单。
/// </summary>
/// <returns></returns>
[OperationContract]
List<AppMenu> GetAllMenus();
#endregion
#region Permission Operations
/// <summary>
/// 获取指定角色ID和菜单名称的访问权限。
/// </summary>
/// <param name="roleId">角色ID</param>
/// <param name="menuName">菜单名称</param>
/// <returns></returns>
[OperationContract]
int GetMenuPermission(string roleId, string menuName);
/// <summary>
/// 获取所有角色的权限列表。
/// </summary>
/// <returns></returns>
[OperationContract]
SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission();
/// <summary>
/// 保存所有角色的权限。
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
[OperationContract]
bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data);
#endregion
#region Role Operations
/// <summary>
/// 获取角色列表。
/// </summary>
/// <returns></returns>
[OperationContract]
List<Role> GetAllRoleList();
/// <summary>
/// 获取角色列表。
/// </summary>
/// <returns></returns>
[OperationContract]
IEnumerable<string> GetAllRoles();
/// <summary>
/// 获取角色列表。
/// </summary>
/// <returns></returns>
[OperationContract]
List<Role> GetRoles();
/// <summary>
/// 更新指定的角色。
/// </summary>
/// <param name="role">角色信息</param>
/// <returns></returns>
[OperationContract]
bool UpdateRole(Role role);
/// <summary>
/// 删除指定的角色。
/// </summary>
/// <param name="roleId">角色ID</param>
/// <returns></returns>
[OperationContract]
bool DeleteRole(string roleId);
/// <summary>
/// 获取指定角色的可访问菜单列表。
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
[OperationContract]
List<AppMenu> GetMenusByRole(string roleId);
#endregion
#region Account Operations
/// <summary>
/// 创建账号。
/// </summary>
/// <param name="newAccount">新账号</param>
/// <returns></returns>
[OperationContract]
CreateAccountResult CreateAccount(Account newAccount);
/// <summary>
/// 删除账号。
/// </summary>
/// <param name="accountId">账号ID</param>
/// <returns></returns>
[OperationContract]
DeleteAccountResult DeleteAccount(string accountId);
/// <summary>
/// 更新指定的账号。
/// </summary>
/// <param name="account">账号信息</param>
/// <returns></returns>
[OperationContract]
UpdateAccountResult UpdateAccount(Account account);
/// <summary>
/// 更新指定的账号。
/// </summary>
/// <param name="account">账号</param>
/// <returns></returns>
[OperationContract]
bool UpdateAccountEx(AccountEx account);
/// <summary>
/// 删除指定的账号。
/// </summary>
/// <param name="loginName">账号名</param>
/// <returns></returns>
[OperationContract]
bool DeleteAccountEx(string loginName);
/// <summary>
/// 获取指定账号信息。
/// </summary>
/// <param name="accountId">账号ID</param>
/// <returns></returns>
[OperationContract]
GetAccountInfoResult GetAccountInfo(string accountId);
/// <summary>
/// 获取账号列表。
/// </summary>
/// <returns></returns>
[OperationContract]
GetAccountListResult GetAccountList();
/// <summary>
/// 获取账号列表。
/// </summary>
/// <returns></returns>
[OperationContract]
List<AccountEx> GetAllAccountExList();
/// <summary>
/// 获取账号列表。
/// </summary>
/// <returns></returns>
[OperationContract]
List<AccountEx> GetAccounts();
/// <summary>
/// 修改账号密码。
/// </summary>
/// <param name="accountId">账号ID</param>
/// <param name="newPassword">新密码</param>
/// <returns></returns>
[OperationContract]
ChangePwdResult ChangePassword(string accountId, string newPassword);
/// <summary>
/// 获取登录用户列表。
/// </summary>
/// <returns></returns>
[OperationContract]
List<Account> GetLoginUsers();
/// <summary>
/// 踢出指定的账号。
/// </summary>
/// <param name="accountId">账号ID</param>
/// <param name="reason">踢出原因</param>
[OperationContract]
void KickUserOut(string accountId, string reason);
#endregion
#region Login/Logout Operations
/// <summary>
/// 登录RT。
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <param name="roleID">角色ID</param>
/// <param name="clientInfo">登录客户端信息</param>
/// <returns></returns>
[OperationContract]
Task<LoginResult> LoginEx(string userName, string password, string roleID,
LoginClientInfo clientInfo);
/// <summary>
/// 注销登录。
/// </summary>
/// <param name="myToken">当前登录的令牌</param>
[OperationContract]
void LogoutEx(Guid myToken);
/// <summary>
/// 取消登录请求。
/// </summary>
/// <param name="userName"></param>
[OperationContract]
void CancelLoginRequest(string userName);
/// <summary>
/// 确认异地登录请求。
/// </summary>
/// <param name="userName">正在请求登录的令牌</param>
[OperationContract]
void ConfirmLoginRequest(string userName);
/// <summary>
/// 拒绝异地登录请求。
/// </summary>
/// <param name="userName">正在请求登录的令牌</param>
[OperationContract]
void RejectLoginRequest(string userName);
/// <summary>
/// 激活凭据。
/// </summary>
/// <param name="myToken">当前登录的令牌</param>
/// <returns></returns>
[OperationContract]
CredentialKeepAliveCheckResult KeepAlive(Guid myToken);
#endregion
}
}