重构代码:ProfileController 保存样式检查用户名

This commit is contained in:
Argo Zhang 2019-03-28 15:24:54 +08:00
parent 78a38b7f8b
commit 50b2d4ecd4
2 changed files with 57 additions and 54 deletions

View File

@ -126,13 +126,11 @@ namespace Bootstrap.Admin.Controllers.Api
public bool Put([FromBody]User value) public bool Put([FromBody]User value)
{ {
var ret = false; var ret = false;
if (value.UserStatus == UserStates.ChangeTheme)
{
return UserHelper.SaveUserCssByName(value.UserName, value.Css);
}
if (value.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase)) if (value.UserName.Equals(User.Identity.Name, StringComparison.OrdinalIgnoreCase))
{ {
if (value.UserStatus == UserStates.ChangeDisplayName) if (value.UserStatus == UserStates.ChangeTheme)
ret = UserHelper.SaveUserCssByName(value.UserName, value.Css);
else if (value.UserStatus == UserStates.ChangeDisplayName)
ret = UserHelper.SaveDisplayName(value.UserName, value.DisplayName); ret = UserHelper.SaveDisplayName(value.UserName, value.DisplayName);
else if (value.UserStatus == UserStates.ChangePassword) else if (value.UserStatus == UserStates.ChangePassword)
ret = UserHelper.ChangePassword(value.UserName, value.Password, value.NewPassword); ret = UserHelper.ChangePassword(value.UserName, value.Password, value.NewPassword);

View File

@ -1,50 +1,55 @@
using Bootstrap.DataAccess; using Bootstrap.DataAccess;
using System; using Xunit;
using System.Linq;
using Xunit; namespace Bootstrap.Admin.Api
{
namespace Bootstrap.Admin.Api public class ProfilesTest : ControllerTest
{ {
public class ProfilesTest : ControllerTest
{
public ProfilesTest(BAWebHost factory) : base(factory, "api/Profiles") { } public ProfilesTest(BAWebHost factory) : base(factory, "api/Profiles") { }
[Fact] [Fact]
public async void Put_Ok() public async void Put_SaveTheme()
{ {
var usr = new User { UserName = "UnitTest_Change", Password = "1", DisplayName = "DisplayName", ApprovedBy = "System", ApprovedTime = DateTime.Now, Description = "Desc", Icon = "default.jpg", Css = "blue.css" }; var usr = new User { UserName = "Admin" };
usr.Delete(usr.Retrieves().Where(u => u.UserName == usr.UserName).Select(u => u.Id)); // change theme
Assert.True(usr.Save(usr)); usr.Css = "blue.css";
usr.UserStatus = UserStates.ChangeTheme;
// change theme var resp = await Client.PutAsJsonAsync<User, bool>(usr);
usr.UserStatus = UserStates.ChangeTheme; Assert.True(resp);
var resp = await Client.PutAsJsonAsync<User, bool>(usr); }
Assert.True(resp);
[Fact]
// Login as new user public async void Put_ChangePassword()
var client = Host.CreateClient(); {
await client.LoginAsync("UnitTest_Change", "1"); var usr = new User() { UserName = "Admin" };
// change password
// change password usr.UserStatus = UserStates.ChangePassword;
usr.UserStatus = UserStates.ChangePassword; usr.NewPassword = "123789";
usr.NewPassword = "1"; usr.Password = "123789";
usr.Password = "1"; var resp = await Client.PutAsJsonAsync<User, bool>(usr);
resp = await client.PutAsJsonAsync<User, bool>("/api/Profiles", usr); Assert.True(resp);
Assert.True(resp); }
// change displayname [Fact]
usr.UserStatus = UserStates.ChangeDisplayName; public async void Put_ChangeDisplayName()
resp = await client.PutAsJsonAsync<User, bool>("/api/Profiles", usr); {
Assert.True(resp); var usr = new User() { UserName = "Admin" };
// change displayname
// change app usr.UserStatus = UserStates.ChangeDisplayName;
usr.App = "UnitTest"; usr.DisplayName = "Administrator";
usr.UserStatus = UserStates.SaveApp; var resp = await Client.PutAsJsonAsync<User, bool>(usr);
resp = await client.PutAsJsonAsync<User, bool>("/api/Profiles", usr); Assert.True(resp);
Assert.True(resp); }
// delete [Fact]
usr.Delete(usr.Retrieves().Where(u => u.UserName == usr.UserName).Select(u => u.Id)); public async void Put_SaveApp()
} {
} var usr = new User() { UserName = "Admin" };
} // change app
usr.App = "UnitTest";
usr.UserStatus = UserStates.SaveApp;
var resp = await Client.PutAsJsonAsync<User, bool>(usr);
Assert.True(resp);
}
}
}