diff --git a/src/HopFrame.Api/README.md b/src/HopFrame.Api/README.md index 17d0ac1..994c8c5 100644 --- a/src/HopFrame.Api/README.md +++ b/src/HopFrame.Api/README.md @@ -28,3 +28,14 @@ This module contains some useful endpoints for user login / register management. 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 +If you don't want to include these endpoints you need to comment out the AddHopFrame line and only add the Auth middleware: +```csharp +builder.Services.AddDbContext(); +//builder.Services.AddHopFrame(); +services.AddHopFrameAuthentication(); +``` diff --git a/src/HopFrame.Security/README.md b/src/HopFrame.Security/README.md index fec1066..cc4b5d0 100644 --- a/src/HopFrame.Security/README.md +++ b/src/HopFrame.Security/README.md @@ -1,2 +1,74 @@ # 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); +} +``` diff --git a/src/HopFrame.Web/AdminPermissions.cs b/src/HopFrame.Web/AdminPermissions.cs deleted file mode 100644 index 365ae87..0000000 --- a/src/HopFrame.Web/AdminPermissions.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace HopFrame.Web; - -[Obsolete("Use HopFrame.Security.AdminPermissions instead")] -public static class AdminPermissions { - public const string IsAdmin = Security.AdminPermissions.IsAdmin; - - public const string ViewUsers = Security.AdminPermissions.ViewUsers; - public const string EditUser = Security.AdminPermissions.EditUser; - public const string DeleteUser = Security.AdminPermissions.DeleteUser; - public const string AddUser = Security.AdminPermissions.AddUser; - - public const string ViewGroups = Security.AdminPermissions.ViewGroups; - public const string EditGroup = Security.AdminPermissions.EditGroup; - public const string DeleteGroup = Security.AdminPermissions.DeleteGroup; - public const string AddGroup = Security.AdminPermissions.AddGroup; -} \ No newline at end of file diff --git a/src/HopFrame.Web/README.md b/src/HopFrame.Web/README.md index 38d2b5d..28b55c5 100644 --- a/src/HopFrame.Web/README.md +++ b/src/HopFrame.Web/README.md @@ -41,3 +41,20 @@ This module contains useful helpers for Blazor Apps and an Admin Dashboard. .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(); +} +```