diff --git a/ImageBoardServerApp/Pages/Login.razor b/ImageBoardServerApp/Pages/Login.razor index 5ead788..aad0b5a 100644 --- a/ImageBoardServerApp/Pages/Login.razor +++ b/ImageBoardServerApp/Pages/Login.razor @@ -18,6 +18,7 @@ [Login] + @@ -46,12 +47,6 @@ navManager.NavigateTo("/", true); return; } - await js.InvokeVoidAsync("alert", $"Wrong creds:\n{BCrypt.Net.BCrypt.HashPassword(Password)}"); + await js.InvokeVoidAsync("alert", $"Wrong Password"); } - - /* - * - UserData target = (await UsersRepository.getUserByEmailAsync(Email)); - - */ } \ No newline at end of file diff --git a/ImageBoardServerApp/Shared/Components/Forms/CommentForm.razor b/ImageBoardServerApp/Shared/Components/Forms/CommentForm.razor index cdecaf0..509c2f7 100644 --- a/ImageBoardServerApp/Shared/Components/Forms/CommentForm.razor +++ b/ImageBoardServerApp/Shared/Components/Forms/CommentForm.razor @@ -1,8 +1,10 @@ @using System.ComponentModel.DataAnnotations +@using ImageBoardServerApp.Auth @using ImageBoardServerApp.Data.Repository @inject NavigationManager navigationManager @inject IWebHostEnvironment env +@inject AuthenticationStateProvider authStateProvider
[ @@ -17,11 +19,11 @@
- OnChange(args, "username")) Class="w-100"/> +
- OnChange(args, "Content")) Class="w-100"/> +
@@ -51,30 +53,9 @@ [Required] public PostData post { get; set; } - string postUsername = "Anonymous"; - string postContent = ""; + string postUsername { get; set; } = "Anonymous"; + string postContent { get; set; } = ""; - void OnChange(string value, string name) - { - switch (name) - { - case "username": - postUsername = value; - if (value == "") - { - postUsername = "Anonymous"; - } - break; - case "content": - postContent = value; - break; - default: - Console.WriteLine("not found."); - break; - } - Console.WriteLine($"Smth changed!: {value}"); - } - private IBrowserFile selectedFile; private async Task SingleUpload(InputFileChangeEventArgs e) @@ -85,29 +66,15 @@ private async Task onPostClick() { - var userToCreate = new UserData - { - Email = "dev@limited-dev.de", - Password = "$2a$10$C/ZPY5aVGkImLGyIP0SySuQaEYIwnY0J99i/m6tqqf6tMkax89Eku", - PermissionInteger = 100, - TimeBanned = -1, - lastActionTimeStamp = DateTime.Now.Millisecond - }; - - int userID; - UserData foundusr = await UsersRepository.getUserByEmailAsync(userToCreate.Email); - if (foundusr == null) - { - userID = await UsersRepository.createUserAsync(userToCreate); - } - else - { - userID = foundusr.UserID; - if(foundusr.TimeBanned != -1) - return; - foundusr.lastActionTimeStamp = DateTimeOffset.UnixEpoch.ToUnixTimeMilliseconds(); - await UsersRepository.updateUserAsync(foundusr); - } + var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider; + var user = await cauthStateProvder.GetAuthenticationStateAsync(); + var usr = user.User; + UserData foundusr = await UsersRepository.getUserByEmailAsync(usr.Identity.Name); + int userID = foundusr.UserID; + if(foundusr.TimeBanned != -1) + return; + foundusr.lastActionTimeStamp = DateTimeOffset.UnixEpoch.ToUnixTimeMilliseconds(); + await UsersRepository.updateUserAsync(foundusr); bool hasImage = selectedFile != null; diff --git a/ImageBoardServerApp/Shared/Components/Forms/PostForm.razor b/ImageBoardServerApp/Shared/Components/Forms/PostForm.razor index f38ac31..ff854f2 100644 --- a/ImageBoardServerApp/Shared/Components/Forms/PostForm.razor +++ b/ImageBoardServerApp/Shared/Components/Forms/PostForm.razor @@ -4,11 +4,13 @@ @using System.Net.Mime @using System.Reflection @using System.Runtime.CompilerServices +@using ImageBoardServerApp.Auth @using ImageBoardServerApp.Data @using ImageBoardServerApp.Data.Repository @inject NavigationManager NavigationManager @inject IWebHostEnvironment env +@inject AuthenticationStateProvider authStateProvider
[ @@ -23,15 +25,15 @@
- OnChange(args, "username")) Class="w-100"/> +
- OnChange(args, "title")) Class="w-100"/> +
- OnChange(args, "Content")) Class="w-100"/> +
@@ -63,30 +65,11 @@ [Required] public BoardData board { get; set; } = new BoardData(); - string postUsername = "Anonymous"; - string postTitle = ""; - string postContent = ""; + string postUsername { get; set; } = "Anonymous"; + string postTitle { get; set; } = ""; + string postContent { get; set; } = ""; + - void OnChange(string value, string name) - { - switch (name) - { - case "title": - postTitle = value; - break; - case "username": - postUsername = value; - break; - case "content": - postContent = value; - break; - default: - Console.WriteLine("not found."); - break; - } - Console.WriteLine($"Smth changed!: {value}"); - } - private IBrowserFile selectedFile; @@ -98,33 +81,21 @@ private async Task onPostClick() { - var userToCreate = new UserData - { - Email = "test@mail.org", - Password = "$2a$10$C/ZPY5aVGkImLGyIP0SySuQaEYIwnY0J99i/m6tqqf6tMkax89Eku", - PermissionInteger = 100, - TimeBanned = -1, - lastActionTimeStamp = DateTime.Now.Millisecond - }; - int userID; - UserData foundusr = await UsersRepository.getUserByEmailAsync(userToCreate.Email); - if (foundusr == null) - { - userID = await UsersRepository.createUserAsync(userToCreate); - } - else - { - userID = foundusr.UserID; - if(foundusr.TimeBanned != -1) - return; - foundusr.lastActionTimeStamp = DateTimeOffset.UnixEpoch.ToUnixTimeMilliseconds(); - await UsersRepository.updateUserAsync(foundusr); - } + var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider; + var user = await cauthStateProvder.GetAuthenticationStateAsync(); + var usr = user.User; + UserData foundusr = await UsersRepository.getUserByEmailAsync(usr.Identity.Name); + int userID = foundusr.UserID; + if(foundusr.TimeBanned != -1) + return; + foundusr.lastActionTimeStamp = DateTimeOffset.UnixEpoch.ToUnixTimeMilliseconds(); + await UsersRepository.updateUserAsync(foundusr); + //TODO Add check if data is image - if (selectedFile == null) + if (selectedFile == null || selectedFile.Size >= 512000 * 4) { return; } diff --git a/ImageBoardServerApp/Shared/Components/Post.razor b/ImageBoardServerApp/Shared/Components/Post.razor index c7dbf57..1e076fe 100644 --- a/ImageBoardServerApp/Shared/Components/Post.razor +++ b/ImageBoardServerApp/Shared/Components/Post.razor @@ -1,5 +1,8 @@ @using System.ComponentModel.DataAnnotations +@using ImageBoardServerApp.Auth @using ImageBoardServerApp.Data +@using ImageBoardServerApp.Data.Repository +@inject AuthenticationStateProvider authStateProvider
@if (showOpenThread) @@ -41,14 +44,16 @@
- + [ + Delete + ] [ Report ] @if (showOpenThread) { [ - (@post.Comments.Count) Open Thread + (@post.Comments.Count) View Thread ] } else @@ -70,6 +75,18 @@ return dateTime; } + private async Task deletePost() + { + var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider; + var user = await cauthStateProvder.GetAuthenticationStateAsync(); + var usr = user.User; + UserData foundusr = await UsersRepository.getUserByEmailAsync(usr.Identity.Name); + if (foundusr.PermissionInteger >= 50 || post.UserID == foundusr.UserID) + { + await PostsRepository.deletePostAsync(post.PostID); + } + } + private bool opened = true; private string toggleText = "-"; diff --git a/ImageBoardServerApp/Shared/MainLayout.razor b/ImageBoardServerApp/Shared/MainLayout.razor index ef0cbc7..b4d94cf 100644 --- a/ImageBoardServerApp/Shared/MainLayout.razor +++ b/ImageBoardServerApp/Shared/MainLayout.razor @@ -1,6 +1,6 @@ @inherits LayoutComponentBase @using ImageBoardServerApp.Auth -@inject AuthenticationStateProvider authStateProvder +@inject AuthenticationStateProvider authStateProvider @inject NavigationManager navManager BulletBoard @@ -17,7 +17,7 @@ [Rules] - [Logout] + [Logout @mail] [Login] @@ -33,9 +33,22 @@ @code { + + private string mail { get; set; } = ""; + + protected override async Task OnInitializedAsync() + { + var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider; + var user = await cauthStateProvder.GetAuthenticationStateAsync(); + if (user.User.Identity.IsAuthenticated) + { + mail = user.User.Identity.Name; + } + } + private async Task logout() { - var customAuthStateProvider = (CustomAuthenticationStateProvider)authStateProvder; + var customAuthStateProvider = (CustomAuthenticationStateProvider) authStateProvider; await customAuthStateProvider.UpdateAuthenticationStateAsync(null); navManager.NavigateTo("/", true); }