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

260 lines
6.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Xml;
using Aitex.Common.Util;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Key;
using Aitex.Core.RT.Log;
using Aitex.Core.Util;
using MECF.Framework.Common.Account;
using MECF.Framework.Common.Account.Extends;
namespace Aitex.Core.Account
{
public sealed class AccountService : IAccountService
{
public string Module => "System";
public GetAccountInfoResult GetAccountInfo(string accountId)
{
return AccountManager.Instance.GetAccountInfo(accountId);
}
public void RegisterViews(List<string> views)
{
AccountManager.Instance.RegisterViews(views);
}
public ChangePwdResult ChangePassword(string accountId, string newPassword)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return new ChangePwdResult();
}
EV.PostInfoLog(Module, $"Change user {accountId} password.");
LOG.Write($"Account operation, change user {accountId} password.");
return AccountManager.Instance.ChangePassword(accountId, newPassword);
}
public CreateAccountResult CreateAccount(Account newAccount)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return new CreateAccountResult();
}
EV.PostInfoLog(Module, $"Create account{newAccount}.");
LOG.Write($"Account operation, Create user {newAccount.AccountId}.");
return AccountManager.Instance.CreateAccount(newAccount);
}
public DeleteAccountResult DeleteAccount(string accountId)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return new DeleteAccountResult();
}
EV.PostInfoLog(Module, $"Delete account {accountId}.");
return AccountManager.Instance.DeleteAccount(accountId);
}
public UpdateAccountResult UpdateAccount(Account account)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return new UpdateAccountResult();
}
EV.PostInfoLog(Module, $"Update {account} account information.");
return AccountManager.Instance.UpdateAccount(account);
}
public GetAccountListResult GetAccountList()
{
return AccountManager.Instance.GetAccountList();
}
public List<Account> GetLoginUsers()
{
return AccountManager.Instance.GetLoginUserList();
}
public void KickUserOut(string accountId, string kickoutReason)
{
EV.PostInfoLog(Module, $"Force user {accountId} logout systemreason{kickoutReason}.");
try
{
}
catch
{
}
AccountManager.Instance.Kickout(accountId, kickoutReason);
}
public SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission()
{
return AccountManager.Instance.GetAllRolesPermission();
}
public bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data)
{
if (Singleton<KeyManager>.Instance.IsExpired)
{
EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
return false;
}
return AccountManager.Instance.SaveAllRolesPermission(data);
}
public SerializableDictionary<string, string> GetAllViewList()
{
return AccountManager.GetAllViewList();
}
public IEnumerable<string> GetAllRoles()
{
return AccountManager.Instance.GetAllRoles();
}
public void CheckAlive(string accountId)
{
AccountManager.Instance.CheckAlive(accountId);
}
public string GetProcessViewPermission()
{
string filename = Path.Combine(PathManager.GetCfgDir(), "RolePermission.xml");
XmlDocument xmlDocument = new XmlDocument();
try
{
xmlDocument.Load(filename);
return xmlDocument.InnerXml;
}
catch (Exception ex)
{
LOG.Write(ex);
return "<Aitex></Aitex>";
}
finally
{
}
}
public bool SaveProcessViewPermission(string viewXML)
{
try
{
string filename = Path.Combine(PathManager.GetCfgDir(), "RolePermission.xml");
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(viewXML);
XmlTextWriter xmlTextWriter = new XmlTextWriter(filename, null);
xmlTextWriter.Formatting = Formatting.Indented;
xmlDocument.Save(xmlTextWriter);
xmlTextWriter.Close();
return true;
}
catch (Exception ex)
{
LOG.Write(ex);
return false;
}
}
public List<Role> GetAllRoleList()
{
return AccountExManager.Instance.RoleLoader.RoleList;
}
public List<AccountEx> GetAllAccountExList()
{
return AccountExManager.Instance.RoleLoader.AccountList;
}
public List<Role> GetRoles()
{
return AccountExManager.Instance.RoleLoader.GetRoles();
}
public List<AccountEx> GetAccounts()
{
return AccountExManager.Instance.RoleLoader.GetAccounts();
}
public bool UpdateRole(Role role)
{
return AccountExManager.Instance.RoleLoader.UpdateRole(role);
}
public bool DeleteRole(string roleId)
{
return AccountExManager.Instance.RoleLoader.DeleteRole(roleId);
}
public List<AppMenu> GetAllMenus()
{
return AccountExManager.Instance.RoleLoader.GetAllMenus();
}
public List<AppMenu> GetMenusByRole(string roleId)
{
return AccountExManager.Instance.RoleLoader.GetMenusByRole(roleId);
}
public int GetMenuPermission(string roleId, string menuName)
{
return AccountExManager.Instance.RoleLoader.GetMenuPermission(roleId, menuName);
}
public bool UpdateAccountEx(AccountEx account)
{
return AccountExManager.Instance.RoleLoader.UpdateAccount(account);
}
public bool DeleteAccountEx(string loginName)
{
return AccountExManager.Instance.RoleLoader.DeleteAccount(loginName);
}
public async Task<LoginResult> LoginEx(string userName, string password, string role,
LoginClientInfo clientInfo)
{
return await AccountExManager.Instance.Login(userName, password, role, clientInfo);
}
public void CancelLoginRequest(string userName)
{
AccountExManager.Instance.CancelLoginRequest(userName);
}
public void ConfirmLoginRequest(Credential requestingCred)
{
AccountExManager.Instance.ConfirmedLoginRequest(requestingCred);
}
public void RejectLoginRequest(Credential requestingCred)
{
AccountExManager.Instance.RejectLoginRequest(requestingCred);
}
public void LogoutEx(Credential cred)
{
AccountExManager.Instance.Logout(cred);
}
/// <summary>
/// 报告客户端处于活动状态。
/// </summary>
/// <param name="token">客户端登录凭据令牌。</param>
/// <returns></returns>
public CredentialKeepAliveResults KeepAlive(Credential cred)
{
return CredentialManager.Instance.KeepAlive(cred);
}
}
}