Browse Source

basic account

ganahrhr 4 năm trước cách đây
mục cha
commit
518a8c2dde
3 tập tin đã thay đổi với 57 bổ sung3 xóa
  1. 25 0
      Models/AccountModel.cs
  2. 32 1
      Pages/DocEdit.razor
  3. 0 2
      Pages/Index.razor

+ 25 - 0
Models/AccountModel.cs

@@ -0,0 +1,25 @@
+using System;
+
+namespace HyperCube.Models
+{
+    public enum Role { Admin = 0, Verifier, User }
+
+    public class AccountModel
+    {
+        /// <summary>
+        /// Internal ID
+        /// </summary>
+        public uint ID { get; set; }
+        /// <summary>
+        /// ASP Identity ID
+        /// </summary>
+        public string UUID { get; set; }
+        public string Name { get; set; }
+        public string Email { get; set; }
+        public Role AccRole { get; set; }
+
+        public AccountModel()
+        {
+        }
+    }
+}

+ 32 - 1
Pages/DocEdit.razor

@@ -7,6 +7,10 @@
 @attribute [Authorize]
 @*@attribute [Authorize(Roles = "admin")]*@
 
+@inject AuthenticationStateProvider AuthenticationStateProvider
+@using Microsoft.AspNetCore.Identity;
+@inject UserManager<IdentityUser> UserManager;
+
 <EditForm Model="@articleModel" OnValidSubmit="@HandleValidSubmit">
     <DataAnnotationsValidator />
     <ValidationSummary />
@@ -20,7 +24,7 @@
             //accept="application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
         }
         else
-        {            
+        {
             //<p>Исходный документ: <a href="" @onclick="@DownloadDoc" @onclick:preventDefault>@articleModel.Filename</a></p>
             <p>Исходный документ: <a href=@FOLDER_NAME download="@articleModel.Filename" target="_top">@articleModel.Filename</a></p>
         }
@@ -81,6 +85,10 @@
         }
         else
             header = "Загрузка материала";
+
+
+        AccountModel account = await GetCurrentAcc();        
+        //header += $", uuid:{account.UUID}, name: {account.Name}";
     }
 
     private async void HandleValidSubmit()
@@ -176,4 +184,27 @@
             NavigationManager.NavigateTo("");
         }
     }
+
+    private async Task<AccountModel> GetCurrentAcc()
+    {
+        AccountModel account = new();
+
+        var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
+        var user = authState.User;
+
+        if (user.Identity.IsAuthenticated)
+        {
+            var currentUser = await UserManager.GetUserAsync(user);
+            account.UUID = currentUser.Id;
+            account.Name = currentUser.UserName;
+            account.Email = currentUser.Email;
+
+            ///tmp
+            account.AccRole = Role.User;
+
+            return account;
+        }
+
+        return null;
+    }
 }

+ 0 - 2
Pages/Index.razor

@@ -1,5 +1,3 @@
 @page "/"
 
 <h1>Добро пожаловать!</h1>
-
-@*<SurveyPrompt Title="How is Blazor working for you?" />*@