/// <summary> /// 保存新建 /// </summary> /// <param name="user"></param> /// <returns></returns> public static bool Save(User user) { if (!UserChecker(user)) { return(false); } // 已经存在或者已经在新用户中了 if (string.IsNullOrEmpty(user.Id) && (RetrieveUserByUserName(user.UserName) != null || RetrieveNewUsers().Any(u => u.UserName == user.UserName))) { return(false); } if (DictHelper.RetrieveSystemModel() && !string.IsNullOrEmpty(user.Id) && RetrieveConstUsers().Any(u => u.Id == user.Id)) { return(true); } var ret = DbContextManager.Create <User>()?.Save(user) ?? false; if (ret) { CacheCleanUtility.ClearCache(userIds: string.IsNullOrEmpty(user.Id) ? new List <string>() : new List <string>() { user.Id }, cacheKey: $"{RetrieveUsersByNameDataKey}-{user.UserName}"); } return(ret); }
/// <summary> /// 通过角色ID保存当前授权用户(插入) /// </summary> /// <param name="roleId">角色ID</param> /// <param name="userIds">用户ID数组</param> /// <returns></returns> public static bool SaveByRoleId(string roleId, IEnumerable <string> userIds) { // 演示模式时禁止修改 Admin 对 Administrators 角色的移除操作 if (DictHelper.RetrieveSystemModel()) { var adminRole = RoleHelper.Retrieves().FirstOrDefault(r => r.RoleName.Equals("Administrators", StringComparison.OrdinalIgnoreCase))?.Id; if (!string.IsNullOrEmpty(adminRole) && roleId.Equals(adminRole, StringComparison.OrdinalIgnoreCase)) { var adminId = Retrieves().FirstOrDefault(u => u.UserName.Equals("Admin", StringComparison.OrdinalIgnoreCase))?.Id; if (!string.IsNullOrEmpty(adminId)) { userIds = userIds.Union(new string[] { adminId }); } } } var ret = DbContextManager.Create <User>()?.SaveByRoleId(roleId, userIds) ?? false; if (ret) { CacheCleanUtility.ClearCache(userIds: userIds, roleIds: new List <string>() { roleId }); } return(ret); }
/// <summary> /// 刪除選單 /// </summary> /// <param name="value"></param> /// <returns></returns> public static bool Delete(IEnumerable <string> value) { if (DictHelper.RetrieveSystemModel()) { // 不允許刪除系統選單與前台演示系統的預設選單 var systemMenus = RetrieveAllMenus("Admin").Where(m => m.Category == "0"); value = value.Where(v => !systemMenus.Any(m => m.Id == v)); if (!value.Any()) { return(true); } // 演示系統 var appMenus = BootstrapAppContext.Configuration.GetSection("AppMenus").Get <ICollection <string> >(); var appIds = RetrieveAllMenus("Admin").Where(m => appMenus.Any(app => m.Name.Equals(app, System.StringComparison.OrdinalIgnoreCase))).Select(m => m.Id); #pragma warning disable CS8602 // 取消引用可能出现的空引用。 value = value.Where(m => !appIds.Any(app => app.Equals(m, StringComparison.OrdinalIgnoreCase))); #pragma warning restore CS8602 // 取消引用可能出现的空引用。 if (!value.Any()) { return(true); } } var ret = DbContextManager.Create <Menu>()?.Delete(value) ?? false; if (ret) { CacheCleanUtility.ClearCache(menuIds: value); } return(ret); }
/// <summary> /// 保存用户角色關係 /// </summary> /// <param name="userId"></param> /// <param name="roleIds"></param> /// <returns></returns> public static bool SaveByUserId(string userId, IEnumerable <string> roleIds) { // 演示模式時禁止修改 Admin 对 Administrators 角色的移除操作 var ret = false; if (DictHelper.RetrieveSystemModel()) { var users = new string[] { "Admin", "User" }; var userIds = UserHelper.Retrieves().Where(u => users.Any(usr => usr.Equals(u.UserName, StringComparison.OrdinalIgnoreCase))).Select(u => u.Id); if (userIds.Any(u => (u ?? string.Empty).Equals(userId, StringComparison.OrdinalIgnoreCase))) { ret = true; } } if (ret) { return(ret); } ret = DbContextManager.Create <Role>()?.SaveByUserId(userId, roleIds) ?? false; if (ret) { CacheCleanUtility.ClearCache(userIds: new List <string>() { userId }, roleIds: roleIds); } return(ret); }
/// <summary> /// 删除菜单 /// </summary> /// <param name="value"></param> /// <returns></returns> public static bool Delete(IEnumerable <string> value) { if (DictHelper.RetrieveSystemModel()) { // 不允许删除系统菜单与前台演示系统的默认菜单 var systemMenus = RetrieveAllMenus("Admin").Where(m => m.Category == "0"); value = value.Where(v => !systemMenus.Any(m => m.Id == v)); if (!value.Any()) { return(true); } // 演示系统 var appMenus = ConfigurationManager.GetSection("AppMenus").Get <ICollection <string> >(); var appIds = RetrieveAllMenus("Admin").Where(m => appMenus.Any(app => m.Name.Equals(app, System.StringComparison.OrdinalIgnoreCase))).Select(m => m.Id); value = value.Where(m => !appIds.Any(app => app.Equals(m, System.StringComparison.OrdinalIgnoreCase))); if (!value.Any()) { return(true); } } var ret = DbContextManager.Create <Menu>().Delete(value); if (ret) { CacheCleanUtility.ClearCache(menuIds: value); } return(ret); }
/// <summary> /// 保存用户到数据库中 /// </summary> /// <param name="newUser"></param> /// <param name="roles"></param> internal static void SaveUser(User newUser, IEnumerable <string> roles) { if (string.IsNullOrEmpty(newUser.Id)) { var uid = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == newUser.UserName)?.Id; var user = DbContextManager.Create <User>(); if (user != null) { if (!string.IsNullOrEmpty(uid)) { user.Delete(new string[] { uid }); } if (user.Save(newUser)) { // 根据配置文件设置默认角色 var role = DbContextManager.Create <Role>(); if (role != null) { var roleIds = role.Retrieves().Where(r => roles.Any(rl => rl.Equals(r.RoleName, StringComparison.OrdinalIgnoreCase))).Select(r => r.Id); if (roleIds.Any()) { #nullable disable role.SaveByUserId(newUser.Id, roleIds); #nullable restore CacheCleanUtility.ClearCache(userIds: new string[0], roleIds: new string[0], cacheKey: $"{UserHelper.RetrieveUsersByNameDataKey}-{newUser.UserName}"); } } } }
/// <summary> /// 删除群组信息 /// </summary> /// <param name="values"></param> public static bool Delete(IEnumerable <string> values) { var ret = DbContextManager.Create <Group>()?.Delete(values) ?? false; if (ret) { CacheCleanUtility.ClearCache(groupIds: values); } return(ret); }
/// <summary> /// 根据用户名修改用户头像 /// </summary> /// <param name="userName"></param> /// <param name="iconName"></param> /// <returns></returns> public static bool SaveUserIconByName(string userName, string iconName) { var ret = DbContextManager.Create <User>()?.SaveUserIconByName(userName, iconName) ?? false; if (ret) { CacheCleanUtility.ClearCache(cacheKey: $"{RetrieveUsersByNameDataKey}*"); } return(ret); }
/// <summary> /// 根据用户名更改用户皮肤 /// </summary> /// <param name="userName"></param> /// <param name="cssName"></param> /// <returns></returns> public static bool SaveUserCssByName(string userName, string cssName) { var ret = DbContextManager.Create <User>().SaveUserCssByName(userName, cssName); if (ret) { CacheCleanUtility.ClearCache(cacheKey: $"{RetrieveUsersByNameDataKey}*"); } return(ret); }
/// <summary> /// 保存网站个性化设置 /// </summary> /// <param name="dicts"></param> /// <returns></returns> public static bool SaveSettings(IEnumerable <BootstrapDict> dicts) { var ret = DbContextManager.Create <Dict>()?.SaveSettings(dicts) ?? false; if (ret) { CacheCleanUtility.ClearCache(dictIds: new List <string>()); } return(ret); }
/// <summary> /// 保存网站个性化设置 /// </summary> /// <param name="dict"></param> /// <returns></returns> public static bool SaveSettings(BootstrapDict dict) { var ret = DbContextManager.Create <Dict>().SaveSettings(dict); if (ret) { CacheCleanUtility.ClearCache(dictIds: new List <string>()); } return(ret); }
/// <summary> /// 忘记密码调用 /// </summary> /// <param name="user"></param> public static bool ForgotPassword(ResetUser user) { var ret = DbContextManager.Create <User>().ForgotPassword(user); if (ret) { CacheCleanUtility.ClearCache(cacheKey: RetrieveUsersDataKey); } return(ret); }
/// <summary> /// 保存用户部门关系 /// </summary> /// <param name="userId"></param> /// <param name="groupIds"></param> /// <returns></returns> public static bool SaveByUserId(string userId, IEnumerable <string> groupIds) { var ret = DbContextManager.Create <Group>()?.SaveByUserId(userId, groupIds) ?? false; if (ret) { CacheCleanUtility.ClearCache(groupIds: groupIds, userIds: new List <string>() { userId }); } return(ret); }
/// <summary> /// 保存新建/更新的群组信息 /// </summary> /// <param name="p"></param> /// <returns></returns> public static bool Save(Group p) { var ret = DbContextManager.Create <Group>()?.Save(p) ?? false; if (ret) { CacheCleanUtility.ClearCache(groupIds: string.IsNullOrEmpty(p.Id) ? new List <string>() : new List <string>() { p.Id }); } return(ret); }
/// <summary> /// 通过指定菜单ID保存角色 /// </summary> /// <param name="menuId"></param> /// <param name="roleIds"></param> /// <returns></returns> public static bool SavaByMenuId(string menuId, IEnumerable <string> roleIds) { var ret = DbContextManager.Create <Role>().SavaByMenuId(menuId, roleIds); if (ret) { CacheCleanUtility.ClearCache(roleIds: roleIds, menuIds: new List <string>() { menuId }); } return(ret); }
/// <summary> /// 根据角色ID以及选定的App ID,保到角色应用表 /// </summary> /// <param name="roleId"></param> /// <param name="appIds"></param> /// <returns></returns> public static bool SaveByRoleId(string roleId, IEnumerable <string> appIds) { var ret = DbContextManager.Create <App>().SaveByRoleId(roleId, appIds); if (ret) { CacheCleanUtility.ClearCache(appIds: appIds, roleIds: new List <string>() { roleId }); } return(ret); }
/// <summary> /// 保存用户角色关系 /// </summary> /// <param name="userId"></param> /// <param name="roleIds"></param> /// <returns></returns> public static bool SaveByUserId(string userId, IEnumerable <string> roleIds) { var ret = DbContextManager.Create <Role>().SaveByUserId(userId, roleIds); if (ret) { CacheCleanUtility.ClearCache(userIds: new List <string>() { userId }, roleIds: roleIds); } return(ret); }
/// <summary> /// 根據GroupId更新Roles訊息,刪除旧的Roles訊息,插入新的Roles訊息 /// </summary> /// <param name="groupId"></param> /// <param name="roleIds"></param> /// <returns></returns> public static bool SaveByGroupId(string groupId, IEnumerable <string> roleIds) { var ret = DbContextManager.Create <Role>()?.SaveByGroupId(groupId, roleIds) ?? false; if (ret) { CacheCleanUtility.ClearCache(roleIds: roleIds, groupIds: new List <string>() { groupId }); } return(ret); }
/// <summary> /// 保存指定角色的所有選單 /// </summary> /// <param name="roleId"></param> /// <param name="menuIds"></param> /// <returns></returns> public static bool SaveMenusByRoleId(string roleId, IEnumerable <string> menuIds) { var ret = DbContextManager.Create <Menu>()?.SaveMenusByRoleId(roleId, menuIds) ?? false; if (ret) { CacheCleanUtility.ClearCache(menuIds: menuIds, roleIds: new List <string>() { roleId }); } return(ret); }
/// <summary> /// 通过部门ID保存当前授权用户(插入) /// </summary> /// <param name="groupId">GroupID</param> /// <param name="userIds">用户ID数组</param> /// <returns></returns> public static bool SaveByGroupId(string groupId, IEnumerable <string> userIds) { var ret = DbContextManager.Create <User>().SaveByGroupId(groupId, userIds); if (ret) { CacheCleanUtility.ClearCache(userIds: userIds, groupIds: new List <string>() { groupId }); } return(ret); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="rejectBy"></param> /// <returns></returns> public static bool Reject(string id, string rejectBy) { var ret = DbContextManager.Create <User>().Reject(id, rejectBy); if (ret) { CacheCleanUtility.ClearCache(userIds: new List <string>() { id }); } return(ret); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="approvedBy"></param> /// <returns></returns> public static bool Approve(string id, string approvedBy) { var ret = DbContextManager.Create <User>().Approve(id, approvedBy); if (ret) { CacheCleanUtility.ClearCache(userIds: new List <string>() { id }); } return(ret); }
/// <summary> /// 保存新建/更新的字典信息 /// </summary> /// <param name="p"></param> /// <returns></returns> public static bool Save(BootstrapDict p) { if (RetrieveSystemModel() && !string.IsNullOrEmpty(p.Id) && RetrieveProtectedDicts().Any(m => m.Id == p.Id)) { return(true); } var ret = DbContextManager.Create <Dict>()?.Save(p) ?? false; if (ret) { CacheCleanUtility.ClearCache(dictIds: new List <string>()); } return(ret); }
/// <summary> /// 保存用户到数据库中 /// </summary> /// <param name="newUser"></param> /// <param name="roles"></param> internal static void SaveUser(User newUser, IEnumerable <string> roles) { var uid = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == newUser.UserName)?.Id; if (uid != null) { DbContextManager.Create <User>().Delete(new string[] { uid }); } DbContextManager.Create <User>().Save(newUser); // 根据配置文件设置默认角色 var roleIds = DbContextManager.Create <Role>().Retrieves().Where(r => roles.Any(rl => rl.Equals(r.RoleName, StringComparison.OrdinalIgnoreCase))).Select(r => r.Id); DbContextManager.Create <Role>().SaveByUserId(newUser.Id, roleIds); CacheCleanUtility.ClearCache(userIds: new string[0], roleIds: new string[0], cacheKey: $"{UserHelper.RetrieveUsersByNameDataKey}-{newUser.UserName}"); }
/// <summary> /// /// </summary> /// <param name="userName"></param> /// <param name="displayName"></param> /// <returns></returns> public static bool SaveDisplayName(string userName, string displayName) { if (!UserChecker(new User { UserName = userName, DisplayName = displayName })) { return(false); } var ret = DbContextManager.Create <User>().SaveDisplayName(userName, displayName); if (ret) { CacheCleanUtility.ClearCache(cacheKey: $"{RetrieveUsersByNameDataKey}*"); } return(ret); }
/// <summary> /// 删除字典中的数据 /// </summary> /// <param name="value">需要删除的IDs</param> /// <returns></returns> public static bool Delete(IEnumerable <string> value) { if (!value.Any()) { return(true); } // 禁止删除系统数据与测试平台数据 if (RetrieveSystemModel() && RetrieveProtectedDicts().Any(d => value.Any(v => v == d.Id))) { return(true); } var ret = DbContextManager.Create <Dict>().Delete(value); CacheCleanUtility.ClearCache(dictIds: value); return(ret); }
/// <summary> /// 删除用户 /// </summary> /// <param name="value"></param> public static bool Delete(IEnumerable <string> value) { var admins = RetrieveConstUsers(); value = value.Where(v => !admins.Any(u => u.Id == v)); if (!value.Any()) { return(true); } var ret = DbContextManager.Create <User>().Delete(value); if (ret) { CacheCleanUtility.ClearCache(userIds: value); } return(ret); }
/// <summary> /// 删除角色表 /// </summary> /// <param name="value"></param> public static bool Delete(IEnumerable <string> value) { var roles = new string[] { "Administrators", "Default" }; var rs = Retrieves().Where(r => roles.Any(rl => rl.Equals(r.RoleName, StringComparison.OrdinalIgnoreCase))); value = value.Where(v => !rs.Any(r => r.Id == v)); if (!value.Any()) { return(true); } var ret = DbContextManager.Create <Role>().Delete(value); if (ret) { CacheCleanUtility.ClearCache(roleIds: value); } return(ret); }
/// <summary> /// 保存選單 /// </summary> /// <param name="p"></param> /// <returns></returns> public static bool Save(BootstrapMenu p) { // 不允許保存系統選單與前台演示系統的預設選單 if (DictHelper.RetrieveSystemModel()) { if (p.Category == "0") { return(true); } // 查找原有資料比对是否為系統選單與演示選單 if (!string.IsNullOrEmpty(p.Id)) { // 系統選單 var menus = RetrieveAllMenus("Admin"); #pragma warning disable CS8602 // 取消引用可能出现的空引用。 var menu = menus.FirstOrDefault(m => m.Id.Equals(p.Id, System.StringComparison.OrdinalIgnoreCase)); #pragma warning restore CS8602 // 取消引用可能出现的空引用。 if (menu != null && menu.Category == "0") { return(true); } // 演示系統 var appMenus = BootstrapAppContext.Configuration.GetSection("AppMenus").Get <ICollection <string> >(); if (appMenus.Any(m => m.Equals(menu?.Name, StringComparison.OrdinalIgnoreCase))) { return(true); } } } var ret = DbContextManager.Create <Menu>()?.Save(p) ?? false; if (ret) { CacheCleanUtility.ClearCache(menuIds: string.IsNullOrEmpty(p.Id) ? new List <string>() : new List <string>() { p.Id }); } return(ret); }
/// <summary> /// 保存新建/更新的角色訊息 /// </summary> /// <param name="p"></param> /// <returns></returns> public static bool Save(Role p) { // 内置两個角色禁止修改 var roles = Retrieves().Where(r => new string[] { "Administrators", "Default" }.Any(s => s.Equals(r.RoleName, StringComparison.OrdinalIgnoreCase))).Select(r => r.Id ?? ""); if (!string.IsNullOrEmpty(p.Id) && roles.Any(r => r.Equals(p.Id, StringComparison.OrdinalIgnoreCase))) { return(true); } var ret = DbContextManager.Create <Role>()?.Save(p) ?? false; if (ret) { CacheCleanUtility.ClearCache(roleIds: string.IsNullOrEmpty(p.Id) ? new List <string>() : new List <string> { p.Id }); } return(ret); }