diff --git a/Flawless.Client/Models/UserModel.cs b/Flawless.Client/Models/UserModel.cs index 13ba932..bbf286a 100644 --- a/Flawless.Client/Models/UserModel.cs +++ b/Flawless.Client/Models/UserModel.cs @@ -32,4 +32,6 @@ public partial class UserModel : ReactiveModel [Reactive] private DateTime _joinDate; [Reactive] private bool _isAdmin; + + [Reactive] private bool _isActive; } \ No newline at end of file diff --git a/Flawless.Client/Service/Remote_Generated.cs b/Flawless.Client/Service/Remote_Generated.cs index a2c6faf..4d2356b 100644 --- a/Flawless.Client/Service/Remote_Generated.cs +++ b/Flawless.Client/Service/Remote_Generated.cs @@ -855,6 +855,12 @@ namespace Flawless.Client.Remote [JsonPropertyName("publicEmail")] public bool? PublicEmail { get; set; } + + [JsonPropertyName("isActive")] + public bool IsActive { get; set; } + + [JsonPropertyName("isAdmin")] + public bool IsAdmin { get; set; } [JsonPropertyName("createdAt")] public System.DateTimeOffset? CreatedAt { get; set; } diff --git a/Flawless.Client/Service/UserService.cs b/Flawless.Client/Service/UserService.cs index 2bc5704..73e70d3 100644 --- a/Flawless.Client/Service/UserService.cs +++ b/Flawless.Client/Service/UserService.cs @@ -45,6 +45,9 @@ public partial class UserService : BaseService user.CanEdit = info.Authorized; user.PhoneNumber = info.Phone; user.Email = info.Email; + user.IsAdmin = info.IsAdmin; + user.IsActive = info.IsActive; + user.JoinDate = info.CreatedAt!.Value.LocalDateTime; _cachedUsers.Add(username, user); } @@ -78,6 +81,9 @@ public partial class UserService : BaseService user.CanEdit = info.Authorized; user.PhoneNumber = info.Phone; user.Email = info.Email; + user.IsAdmin = info.IsAdmin; + user.IsActive = info.IsActive; + user.JoinDate = info.CreatedAt!.Value.LocalDateTime; } catch (Exception e) { diff --git a/Flawless.Client/ViewModels/SettingViewModel.cs b/Flawless.Client/ViewModels/SettingViewModel.cs index 07e9236..8f49063 100644 --- a/Flawless.Client/ViewModels/SettingViewModel.cs +++ b/Flawless.Client/ViewModels/SettingViewModel.cs @@ -306,13 +306,13 @@ public partial class SettingViewModel : RoutableViewModelBase } [ReactiveCommand] - private async Task ToSuperUserAsync(string username) + private async Task PromoteUserAsync(string username) { await UpdateUserSuperAsync(username, true); } [ReactiveCommand] - private async Task ToNormalUserAsync(string username) + private async Task DemoteUserAsync(string username) { await UpdateUserSuperAsync(username, false); } diff --git a/Flawless.Client/Views/SettingView.axaml b/Flawless.Client/Views/SettingView.axaml index 62f9e1e..2c80198 100644 --- a/Flawless.Client/Views/SettingView.axaml +++ b/Flawless.Client/Views/SettingView.axaml @@ -4,6 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:u="https://irihi.tech/ursa" xmlns:vm="using:Flawless.Client.ViewModels" + xmlns:views="clr-namespace:Flawless.Client.Views" x:DataType="vm:SettingViewModel" mc:Ignorable="d" d:DesignWidth="1280" d:DesignHeight="768" x:Class="Flawless.Client.Views.SettingView"> @@ -80,6 +81,64 @@ + + + + + + + + + + + + + + + +