Implemented user permission update
This commit is contained in:
@@ -44,7 +44,8 @@ public class UsersController : Controller
|
|||||||
{
|
{
|
||||||
Id = x.Id,
|
Id = x.Id,
|
||||||
Email = x.Email,
|
Email = x.Email,
|
||||||
Username = x.Username
|
Username = x.Username,
|
||||||
|
PermissionsJson = x.PermissionsJson
|
||||||
})
|
})
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
@@ -73,7 +74,8 @@ public class UsersController : Controller
|
|||||||
{
|
{
|
||||||
Id = user.Id,
|
Id = user.Id,
|
||||||
Email = user.Email,
|
Email = user.Email,
|
||||||
Username = user.Username
|
Username = user.Username,
|
||||||
|
PermissionsJson = user.PermissionsJson
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +110,8 @@ public class UsersController : Controller
|
|||||||
{
|
{
|
||||||
Id = finalUser.Id,
|
Id = finalUser.Id,
|
||||||
Email = finalUser.Email,
|
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))
|
if (!string.IsNullOrEmpty(request.Password))
|
||||||
{
|
{
|
||||||
user.Password = HashHelper.Hash(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.Email = request.Email;
|
||||||
user.Username = request.Username;
|
user.Username = request.Username;
|
||||||
// TODO: Add permissions update here
|
|
||||||
|
|
||||||
await UserRepository.Update(user);
|
await UserRepository.Update(user);
|
||||||
|
|
||||||
@@ -151,7 +159,8 @@ public class UsersController : Controller
|
|||||||
{
|
{
|
||||||
Id = user.Id,
|
Id = user.Id,
|
||||||
Email = user.Email,
|
Email = user.Email,
|
||||||
Username = user.Username
|
Username = user.Username,
|
||||||
|
PermissionsJson = user.PermissionsJson
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,12 @@
|
|||||||
<input @bind="Request.Email" type="email" autocomplete="off" class="form-input w-full">
|
<input @bind="Request.Email" type="email" autocomplete="off" class="form-input w-full">
|
||||||
</div>
|
</div>
|
||||||
</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">
|
<div class="sm:col-span-2">
|
||||||
<label class="block text-sm font-medium leading-6 text-white">Password</label>
|
<label class="block text-sm font-medium leading-6 text-white">Password</label>
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
@@ -56,7 +62,13 @@
|
|||||||
private async Task Load(LazyLoader _)
|
private async Task Load(LazyLoader _)
|
||||||
{
|
{
|
||||||
var detail = await ApiClient.GetJson<UserResponse>($"api/admin/users/{Id}");
|
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()
|
private async Task OnSubmit()
|
||||||
|
|||||||
@@ -13,4 +13,7 @@ public class UpdateUserRequest
|
|||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
|
|
||||||
public string? Password { get; set; }
|
public string? Password { get; set; }
|
||||||
|
|
||||||
|
[Required(ErrorMessage = "You need to provide permissions")]
|
||||||
|
public string PermissionsJson { get; set; } = "[]";
|
||||||
}
|
}
|
||||||
@@ -5,4 +5,5 @@ public class UserResponse
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
public string Email { get; set; }
|
public string Email { get; set; }
|
||||||
|
public string PermissionsJson { get; set; }
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user