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

293 lines
7.9 KiB
C#
Raw Normal View History

2023-04-13 11:51:03 +08:00
using System.Collections.Generic;
using System.ServiceModel;
using System.Threading.Tasks;
2023-04-13 11:51:03 +08:00
using Aitex.Core.Util;
using MECF.Framework.Common.Account.Extends;
namespace Aitex.Core.Account
{
[ServiceKnownType(typeof(CredentialKeepAliveResults))]
[ServiceKnownType(typeof(CredentialState))]
[ServiceKnownType(typeof(LoginRequestResults))]
[ServiceKnownType(typeof(Credential))]
[ServiceKnownType(typeof(LoginClientInfo))]
[ServiceKnownType(typeof(AccountEx))]
[ServiceKnownType(typeof(LoginResult))]
[ServiceContract]
public interface IAccountService
{
#region Common Operations
2023-04-13 11:51:03 +08:00
/// <summary>
/// ע<><D7A2><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
/// </summary>
/// <param name="views"></param>
[OperationContract]
void RegisterViews(List<string> views);
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
/// </summary>
/// <returns></returns>
[OperationContract]
SerializableDictionary<string, string> GetAllViewList();
2023-04-13 11:51:03 +08:00
/// <summary>
/// TBD
/// </summary>
/// <returns></returns>
[OperationContract]
string GetProcessViewPermission();
2023-04-13 11:51:03 +08:00
/// <summary>
/// TBD
/// </summary>
/// <param name="viewXML"></param>
/// <returns></returns>
[OperationContract]
bool SaveProcessViewPermission(string viewXML);
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><>ȡϵͳ֧<CDB3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>в˵<D0B2><CBB5><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
List<AppMenu> GetAllMenus();
2023-04-13 11:51:03 +08:00
#endregion
2023-04-13 11:51:03 +08:00
#region Permission Operations
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD>ɫID<49>Ͳ˵<CDB2><CBB5><EFBFBD><EFBFBD>Ƶķ<C6B5><C4B7><EFBFBD>Ȩ<EFBFBD>ޡ<EFBFBD>
/// </summary>
/// <param name="roleId"><3E><>ɫID</param>
/// <param name="menuName"><3E>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns></returns>
[OperationContract]
int GetMenuPermission(string roleId, string menuName);
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD>н<EFBFBD>ɫ<EFBFBD><C9AB>Ȩ<EFBFBD><C8A8><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission();
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD>ɫ<EFBFBD><C9AB>Ȩ<EFBFBD>ޡ<EFBFBD>
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
[OperationContract]
bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data);
2023-04-13 11:51:03 +08:00
#endregion
2023-04-13 11:51:03 +08:00
#region Role Operations
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
List<Role> GetAllRoleList();
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
IEnumerable<string> GetAllRoles();
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
List<Role> GetRoles();
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>Ľ<EFBFBD>ɫ<EFBFBD><C9AB>
/// </summary>
/// <param name="role"><3E><>ɫ<EFBFBD><C9AB>Ϣ</param>
/// <returns></returns>
[OperationContract]
bool UpdateRole(Role role);
2023-04-13 11:51:03 +08:00
/// <summary>
/// ɾ<><C9BE>ָ<EFBFBD><D6B8><EFBFBD>Ľ<EFBFBD>ɫ<EFBFBD><C9AB>
/// </summary>
/// <param name="roleId"><3E><>ɫID</param>
/// <returns></returns>
[OperationContract]
bool DeleteRole(string roleId);
2023-04-13 11:51:03 +08:00
/// <summary>
/// <20><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD>ɫ<EFBFBD>Ŀɷ<C4BF><C9B7>ʲ˵<CAB2><CBB5>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
[OperationContract]
List<AppMenu> GetMenusByRole(string roleId);
2023-04-13 11:51:03 +08:00
#endregion
2023-04-13 11:51:03 +08:00
#region Account Operations
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD>˺š<CBBA>
/// </summary>
/// <param name="newAccount"><3E><><EFBFBD>˺<EFBFBD></param>
/// <returns></returns>
[OperationContract]
CreateAccountResult CreateAccount(Account newAccount);
/// <summary>
/// ɾ<><C9BE><EFBFBD>˺š<CBBA>
/// </summary>
/// <param name="accountId"><3E>˺<EFBFBD>ID</param>
/// <returns></returns>
[OperationContract]
DeleteAccountResult DeleteAccount(string accountId);
/// <summary>
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>˺š<CBBA>
/// </summary>
/// <param name="account"><3E>˺<EFBFBD><CBBA><EFBFBD>Ϣ</param>
/// <returns></returns>
[OperationContract]
UpdateAccountResult UpdateAccount(Account account);
/// <summary>
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>˺š<CBBA>
/// </summary>
/// <param name="account"><3E>˺<EFBFBD></param>
/// <returns></returns>
[OperationContract]
bool UpdateAccountEx(AccountEx account);
/// <summary>
/// ɾ<><C9BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>˺š<CBBA>
/// </summary>
/// <param name="loginName"><3E>˺<EFBFBD><CBBA><EFBFBD></param>
/// <returns></returns>
[OperationContract]
bool DeleteAccountEx(string loginName);
/// <summary>
/// <20><>ȡָ<C8A1><D6B8><EFBFBD>˺<EFBFBD><CBBA><EFBFBD>Ϣ<EFBFBD><CFA2>
/// </summary>
/// <param name="accountId"><3E>˺<EFBFBD>ID</param>
/// <returns></returns>
[OperationContract]
GetAccountInfoResult GetAccountInfo(string accountId);
/// <summary>
/// <20><>ȡ<EFBFBD>˺<EFBFBD><CBBA>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
GetAccountListResult GetAccountList();
/// <summary>
/// <20><>ȡ<EFBFBD>˺<EFBFBD><CBBA>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
List<AccountEx> GetAllAccountExList();
/// <summary>
/// <20><>ȡ<EFBFBD>˺<EFBFBD><CBBA>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
List<AccountEx> GetAccounts();
/// <summary>
/// <20>޸<EFBFBD><DEB8>˺<EFBFBD><CBBA><EFBFBD><EFBFBD>
/// </summary>
/// <param name="accountId"><3E>˺<EFBFBD>ID</param>
/// <param name="newPassword"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns></returns>
[OperationContract]
ChangePwdResult ChangePassword(string accountId, string newPassword);
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1>¼<EFBFBD>û<EFBFBD><C3BB>б<EFBFBD><D0B1><EFBFBD>
/// </summary>
/// <returns></returns>
[OperationContract]
List<Account> GetLoginUsers();
/// <summary>
/// <20>߳<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>˺š<CBBA>
/// </summary>
/// <param name="accountId"><3E>˺<EFBFBD>ID</param>
/// <param name="reason"><3E>߳<EFBFBD>ԭ<EFBFBD><D4AD></param>
[OperationContract]
void KickUserOut(string accountId, string reason);
#endregion
#region Login/Logout Operations
/// <summary>
/// <20><>¼RT<52><54>
/// </summary>
/// <param name="userName"><3E>û<EFBFBD><C3BB><EFBFBD></param>
/// <param name="password"><3E><><EFBFBD><EFBFBD></param>
/// <param name="roleID"><3E><>ɫID</param>
/// <param name="clientInfo"><3E><>¼<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>Ϣ</param>
/// <returns></returns>
[OperationContract]
Task<LoginResult> LoginEx(string userName, string password, string roleID,
LoginClientInfo clientInfo);
/// <summary>
/// ע<><D7A2><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
/// </summary>
/// <param name="cred">ƾ<><C6BE></param>
[OperationContract]
void LogoutEx(Credential cred);
/// <summary>
/// ȡ<><C8A1><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="userName"></param>
[OperationContract]
void CancelLoginRequest(string userName);
/// <summary>
/// ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="requestingCred"></param>
[OperationContract]
void ConfirmLoginRequest(Credential requestingCred);
/// <summary>
/// <20>ܾ<EFBFBD><DCBE><EFBFBD><EFBFBD>ص<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="requestingCred"></param>
[OperationContract]
void RejectLoginRequest(Credential requestingCred);
/// <summary>
/// <20><><EFBFBD><EFBFBD>ƾ<EFBFBD>ݡ<EFBFBD>
/// </summary>
/// <param name="cred">ƾ<><C6BE></param>
/// <returns></returns>
[OperationContract]
CredentialKeepAliveResults KeepAlive(Credential cred);
#endregion
}
2023-04-13 11:51:03 +08:00
}