Implemented user permission update

This commit is contained in:
2025-04-15 12:32:29 +02:00
parent db7ac8d174
commit c12e1e38b8
4 changed files with 32 additions and 7 deletions

View File

@@ -44,7 +44,8 @@ public class UsersController : Controller
{
Id = x.Id,
Email = x.Email,
Username = x.Username
Username = x.Username,
PermissionsJson = x.PermissionsJson
})
.ToArray();
@@ -73,7 +74,8 @@ public class UsersController : Controller
{
Id = user.Id,
Email = user.Email,
Username = user.Username
Username = user.Username,
PermissionsJson = user.PermissionsJson
};
}
@@ -108,7 +110,8 @@ public class UsersController : Controller
{
Id = finalUser.Id,
Email = finalUser.Email,
Username = finalUser.Username
Username = finalUser.Username,
PermissionsJson = finalUser.PermissionsJson
};
}
@@ -138,12 +141,17 @@ public class UsersController : Controller
if (!string.IsNullOrEmpty(request.Password))
{
user.Password = HashHelper.Hash(request.Password);
user.TokenValidTimestamp = DateTime.UtcNow; // This change will get applied by the crud helper
user.TokenValidTimestamp = DateTime.UtcNow; // Log out user after password change
}
if (user.PermissionsJson != request.PermissionsJson)
{
user.PermissionsJson = request.PermissionsJson;
user.TokenValidTimestamp = DateTime.UtcNow; // Log out user after permission change
}
user.Email = request.Email;
user.Username = request.Username;
// TODO: Add permissions update here
await UserRepository.Update(user);
@@ -151,7 +159,8 @@ public class UsersController : Controller
{
Id = user.Id,
Email = user.Email,
Username = user.Username
Username = user.Username,
PermissionsJson = user.PermissionsJson
};
}

View File

@@ -35,6 +35,12 @@
<input @bind="Request.Email" type="email" autocomplete="off" class="form-input w-full">
</div>
</div>
<div class="sm:col-span-2">
<label class="block text-sm font-medium leading-6 text-white">Permissions</label>
<div class="mt-2">
<input @bind="Request.PermissionsJson" type="text" autocomplete="off" class="form-input w-full">
</div>
</div>
<div class="sm:col-span-2">
<label class="block text-sm font-medium leading-6 text-white">Password</label>
<div class="mt-2">
@@ -56,7 +62,13 @@
private async Task Load(LazyLoader _)
{
var detail = await ApiClient.GetJson<UserResponse>($"api/admin/users/{Id}");
Request = Mapper.Map<UpdateUserRequest>(detail);
Request = new()
{
Email = detail.Email,
PermissionsJson = detail.PermissionsJson,
Username = detail.Username
};
}
private async Task OnSubmit()

View File

@@ -13,4 +13,7 @@ public class UpdateUserRequest
public string Username { get; set; }
public string? Password { get; set; }
[Required(ErrorMessage = "You need to provide permissions")]
public string PermissionsJson { get; set; } = "[]";
}

View File

@@ -5,4 +5,5 @@ public class UserResponse
public int Id { get; set; }
public string Username { get; set; }
public string Email { get; set; }
public string PermissionsJson { get; set; }
}