feat(#IW6DI): 演示模式下禁止删除User用户

#Comment
演示模式下User用户与Admin用户相同禁止操作
comment #IW6DI

#Issue
close https://gitee.com/LongbowEnterprise/dashboard/issues?id=IW6DI
This commit is contained in:
Argo Zhang 2019-05-05 17:52:27 +08:00
parent 5803cd8c1e
commit 558ace13c7
1 changed files with 13 additions and 5 deletions

View File

@ -64,13 +64,19 @@ namespace Bootstrap.DataAccess
/// <returns></returns>
public static IEnumerable<User> RetrieveNewUsers() => CacheManager.GetOrAdd(RetrieveNewUsersDataKey, key => DbContextManager.Create<User>().RetrieveNewUsers());
private static IEnumerable<User> RetrieveConstUsers()
{
var users = new string[] { "Admin", "User" };
return Retrieves().Where(u => users.Any(usr => usr.Equals(u.UserName, StringComparison.OrdinalIgnoreCase)));
}
/// <summary>
/// 删除用户
/// </summary>
/// <param name="value"></param>
public static bool Delete(IEnumerable<string> value)
{
var admins = Retrieves().Where(u => u.UserName.Equals("Admin", StringComparison.OrdinalIgnoreCase));
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);
@ -102,7 +108,7 @@ namespace Bootstrap.DataAccess
if (DictHelper.RetrieveSystemModel() && !user.Id.IsNullOrEmpty())
{
var admins = Retrieves().Where(u => u.UserName.Equals("Admin", StringComparison.OrdinalIgnoreCase));
var admins = RetrieveConstUsers();
if (admins.Any(v => v.Id == user.Id)) return true;
}
var ret = DbContextManager.Create<User>().Save(user);
@ -122,7 +128,7 @@ namespace Bootstrap.DataAccess
if (!UserChecker(new User { Password = password, DisplayName = displayName })) return false;
if (DictHelper.RetrieveSystemModel())
{
var admins = Retrieves().Where(u => u.UserName.Equals("Admin", StringComparison.OrdinalIgnoreCase));
var admins = RetrieveConstUsers();
if (admins.Any(v => v.Id == id)) return true;
}
var ret = DbContextManager.Create<User>().Update(id, password, displayName);
@ -153,7 +159,9 @@ namespace Bootstrap.DataAccess
public static bool ChangePassword(string userName, string password, string newPass)
{
if (!UserChecker(new User { UserName = userName, Password = password })) return false;
if (DictHelper.RetrieveSystemModel() && userName.Equals("Admin", StringComparison.OrdinalIgnoreCase)) return true;
if (DictHelper.RetrieveSystemModel()
&& RetrieveConstUsers().Any(u => userName.Equals(u.UserName, StringComparison.OrdinalIgnoreCase)))
return true;
return DbContextManager.Create<User>().ChangePassword(userName, password, newPass);
}
@ -166,7 +174,7 @@ namespace Bootstrap.DataAccess
public static bool ResetPassword(string userName, string password)
{
if (!UserChecker(new User { UserName = userName, Password = password })) return false;
if (DictHelper.RetrieveSystemModel() && userName.Equals("Admin", StringComparison.OrdinalIgnoreCase)) return true;
if (DictHelper.RetrieveSystemModel() && RetrieveConstUsers().Any(u => userName.Equals(u.UserName, StringComparison.OrdinalIgnoreCase))) return true;
return DbContextManager.Create<User>().ResetPassword(userName, password);
}