From bd7751b44bb28a2ce8a6e084ccd6c32f1f8d1d1f Mon Sep 17 00:00:00 2001 From: Leon Hoppe Date: Sat, 23 Nov 2024 15:40:58 +0100 Subject: [PATCH] Updated versions + edited project readme's --- README.md | 12 +-- src/HopFrame.Api/HopFrame.Api.csproj | 2 +- src/HopFrame.Api/README.md | 98 +------------------ .../HopFrame.Database.csproj | 2 +- src/HopFrame.Database/README.md | 4 +- .../HopFrame.Security.csproj | 2 +- src/HopFrame.Security/README.md | 72 +------------- .../HopFrame.Web.Admin.csproj | 6 ++ src/HopFrame.Web.Admin/README.md | 4 + src/HopFrame.Web/HopFrame.Web.csproj | 2 +- src/HopFrame.Web/README.md | 58 +---------- 11 files changed, 23 insertions(+), 239 deletions(-) create mode 100644 src/HopFrame.Web.Admin/README.md diff --git a/README.md b/README.md index 26ad808..4d53003 100644 --- a/README.md +++ b/README.md @@ -5,21 +5,15 @@ A simple backend management api for ASP.NET Core Web APIs - [x] Database management - [x] User authentication - [x] Permission management -- [x] Frontend dashboards - -## 2.0 Todo list -- [x] 1.0 bug fixes -- [x] Code cleanup -- [x] Relations in database -- [x] Generated Admin pages -- [x] Pretty Login page for administration -- [ ] Clean documentation +- [x] Generated frontend administration boards # Usage There are two different versions of HopFrame, either the Web API version or the full Blazor web version. ## Ho to use the Web API version +> **Hint:** For more information about the HopFrame installation and usage go to the [docs](./docs). + 1. Add the HopFrame.Api library to your project: ``` diff --git a/src/HopFrame.Api/HopFrame.Api.csproj b/src/HopFrame.Api/HopFrame.Api.csproj index 614e37a..744a466 100644 --- a/src/HopFrame.Api/HopFrame.Api.csproj +++ b/src/HopFrame.Api/HopFrame.Api.csproj @@ -7,7 +7,7 @@ disable HopFrame.Api - 1.1.0 + 2.0.0 README.md MIT true diff --git a/src/HopFrame.Api/README.md b/src/HopFrame.Api/README.md index 67b946b..94966e4 100644 --- a/src/HopFrame.Api/README.md +++ b/src/HopFrame.Api/README.md @@ -1,100 +1,4 @@ # HopFrame API module This module contains some useful endpoints for user login / register management. -## Ho to use the Web API version - -1. Add the HopFrame.Api library to your project: - - ``` - dotnet add package HopFrame.Api - ``` - -2. Create a DbContext that inherits the ``HopDbContext`` and add a data source - - ```csharp - public class DatabaseContext : HopDbContextBase { - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - base.OnConfiguring(optionsBuilder); - - optionsBuilder.UseSqlite("..."); - } - } - ``` - -3. Add the DbContext and HopFrame to your services - - ```csharp - builder.Services.AddDbContext(); - builder.Services.AddHopFrame(); - ``` - -# Endpoints -By default, the module provides a controller for handling authentication based requests by the user. -You can explore the contoller by the build in swagger site from ASP .NET. - -## Disable the Endpoints - -```csharp -builder.Services.AddDbContext(); -//builder.Services.AddHopFrame(); -services.AddHopFrameNoEndpoints(); -``` - -# Services added in this module -You can use these services by specifying them as a dependency. All of them are scoped dependencies. - -## LogicResult -Logic result is an extension of the ActionResult for an ApiController. It provides simple Http status results with either a message or data by specifying the generic type. - -```csharp -public class LogicResult : ILogicResult { - public static LogicResult Ok(); - - public static LogicResult BadRequest(); - - public static LogicResult BadRequest(string message); - - public static LogicResult Forbidden(); - - public static LogicResult Forbidden(string message); - - public static LogicResult NotFound(); - - public static LogicResult NotFound(string message); - - public static LogicResult Conflict(); - - public static LogicResult Conflict(string message); - - public static LogicResult Forward(LogicResult result); - - public static LogicResult Forward(ILogicResult result); - - public static implicit operator ActionResult(LogicResult v); -} - -public class LogicResult : ILogicResult { - public static LogicResult Ok(); - - public static LogicResult Ok(T result); - - ... -} -``` - -## IAuthLogic -This service handles all logic needed to provide the authentication endpoints by using the LogicResults. - -```csharp -public interface IAuthLogic { - Task>> Login(UserLogin login); - - Task>> Register(UserRegister register); - - Task>> Authenticate(); - - Task Logout(); - - Task Delete(UserPasswordValidation validation); -} -``` \ No newline at end of file +For more information about the HopFrame visit the [docs](https://git.leon-hoppe.de/leon.hoppe/HopFrame). \ No newline at end of file diff --git a/src/HopFrame.Database/HopFrame.Database.csproj b/src/HopFrame.Database/HopFrame.Database.csproj index f2bcba7..de55cd5 100644 --- a/src/HopFrame.Database/HopFrame.Database.csproj +++ b/src/HopFrame.Database/HopFrame.Database.csproj @@ -7,7 +7,7 @@ disable HopFrame.Database - 1.1.0 + 2.0.0 README.md MIT true diff --git a/src/HopFrame.Database/README.md b/src/HopFrame.Database/README.md index 0aacfa2..25d0bda 100644 --- a/src/HopFrame.Database/README.md +++ b/src/HopFrame.Database/README.md @@ -1,2 +1,4 @@ # HopFrame Database module -This module contains all the logic for the database communication +This module contains all the logic for the database communication. + +For more information about the HopFrame visit the [docs](https://git.leon-hoppe.de/leon.hoppe/HopFrame). diff --git a/src/HopFrame.Security/HopFrame.Security.csproj b/src/HopFrame.Security/HopFrame.Security.csproj index b8a814b..74c1d50 100644 --- a/src/HopFrame.Security/HopFrame.Security.csproj +++ b/src/HopFrame.Security/HopFrame.Security.csproj @@ -8,7 +8,7 @@ HopFrame.Security HopFrame.Security - 1.1.0 + 2.0.0 README.md MIT true diff --git a/src/HopFrame.Security/README.md b/src/HopFrame.Security/README.md index cc4b5d0..9dfdbb4 100644 --- a/src/HopFrame.Security/README.md +++ b/src/HopFrame.Security/README.md @@ -1,74 +1,4 @@ # HopFrame Security module this module contains all handlers for the login and register validation. It also checks the user permissions. -# Services added in this module -You can use these services by specifying them as a dependency. All of them are scoped dependencies. - -## ITokenContext -This service provides the information given by the current request - -```csharp -public interface ITokenContext { - bool IsAuthenticated { get; } - - User User { get; } - - Guid AccessToken { get; } -} -``` - -## IUserService -This service simplifies the data access of the user table in the database. - -```csharp -public interface IUserService { - Task> GetUsers(); - - Task GetUser(Guid userId); - - Task GetUserByEmail(string email); - - Task GetUserByUsername(string username); - - Task AddUser(UserRegister user); - - Task UpdateUser(User user); - - Task DeleteUser(User user); - - Task CheckUserPassword(User user, string password); - - Task ChangePassword(User user, string password); -} -``` - -## IPermissionService -This service handles all permission and group interactions with the data source. - -```csharp -public interface IPermissionService { - Task HasPermission(string permission, Guid user); - - Task> GetPermissionGroups(); - - Task GetPermissionGroup(string name); - - Task EditPermissionGroup(PermissionGroup group); - - Task> GetUserPermissionGroups(User user); - - Task RemoveGroupFromUser(User user, PermissionGroup group); - - Task CreatePermissionGroup(string name, bool isDefault = false, string description = null); - - Task DeletePermissionGroup(PermissionGroup group); - - Task GetPermission(string name, IPermissionOwner owner); - - Task AddPermission(IPermissionOwner owner, string permission); - - Task RemovePermission(Permission permission); - - Task GetFullPermissions(string user); -} -``` +For more information about the HopFrame visit the [docs](https://git.leon-hoppe.de/leon.hoppe/HopFrame). diff --git a/src/HopFrame.Web.Admin/HopFrame.Web.Admin.csproj b/src/HopFrame.Web.Admin/HopFrame.Web.Admin.csproj index 096a35f..ab89ff0 100644 --- a/src/HopFrame.Web.Admin/HopFrame.Web.Admin.csproj +++ b/src/HopFrame.Web.Admin/HopFrame.Web.Admin.csproj @@ -4,6 +4,12 @@ net8.0 enable disable + + HopFrame.Web.Admin + 2.0.0 + README.md + MIT + true diff --git a/src/HopFrame.Web.Admin/README.md b/src/HopFrame.Web.Admin/README.md new file mode 100644 index 0000000..3687e26 --- /dev/null +++ b/src/HopFrame.Web.Admin/README.md @@ -0,0 +1,4 @@ +# HopFrame admin pages module +This module contains all necessary information to create and compile the generated admin pages. + +For more information about the HopFrame visit the [docs](https://git.leon-hoppe.de/leon.hoppe/HopFrame). diff --git a/src/HopFrame.Web/HopFrame.Web.csproj b/src/HopFrame.Web/HopFrame.Web.csproj index bec6f04..a512b95 100644 --- a/src/HopFrame.Web/HopFrame.Web.csproj +++ b/src/HopFrame.Web/HopFrame.Web.csproj @@ -7,7 +7,7 @@ true HopFrame.Web - 1.1.0 + 2.0.0 README.md MIT true diff --git a/src/HopFrame.Web/README.md b/src/HopFrame.Web/README.md index 28b55c5..6bd7f3c 100644 --- a/src/HopFrame.Web/README.md +++ b/src/HopFrame.Web/README.md @@ -1,60 +1,4 @@ # HopFrame Web module This module contains useful helpers for Blazor Apps and an Admin Dashboard. -## How to use the Blazor API - -1. Add the HopFrame.Web library to your project - - ``` - dotnet add package HopFrame.Web - ``` - -2. Create a DbContext that inherits the ``HopDbContext`` and add a data source - - ```csharp - public class DatabaseContext : HopDbContextBase { - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - base.OnConfiguring(optionsBuilder); - - optionsBuilder.UseSqlite("..."); - } - } - ``` - -3. Add the DbContext and HopFrame to your services - - ```csharp - builder.Services.AddDbContext(); - builder.Services.AddHopFrame(); - ``` - -4. Add the authentication middleware to your app - - ```csharp - app.UseMiddleware(); - ``` - -5. Add the HopFrame pages to your Razor components - - ```csharp - app.MapRazorComponents() - .AddHopFrameAdminPages() - .AddInteractiveServerRenderMode(); - ``` - -# Services added in this module -You can use these services by specifying them as a dependency. All of them are scoped dependencies. - -## IAuthService -This service handles all the authentication like login or register. It properly creates all tokens so the user can be identified - -```csharp -public interface IAuthService { - Task Register(UserRegister register); - Task Login(UserLogin login); - Task Logout(); - - Task RefreshLogin(); - Task IsLoggedIn(); -} -``` +For more information about the HopFrame visit the [docs](https://git.leon-hoppe.de/leon.hoppe/HopFrame).