From b4c58d9bc1b8453b9618658575cacf1134c19887 Mon Sep 17 00:00:00 2001 From: "Amir.H Khademi" Date: Thu, 7 Dec 2023 21:47:04 +0330 Subject: [PATCH] add version 0.1.4.0 --- .version | 2 +- .../AppSettings/appsettings.Development.json | 2 +- Brizco.Api/Brizco.Api.csproj | 50 +++---- Brizco.Api/Controllers/ActivityController.cs | 2 +- Brizco.Api/Dockerfile | 4 +- Brizco.Common/Brizco.Common.csproj | 19 ++- .../Models/Claims/ApplicationClaims.cs | 135 +++++++++++++++++- .../Models/Claims/ApplicationPermission.cs | 16 +++ Brizco.Core/BaseServices/JwtService.cs | 3 +- Brizco.Core/Brizco.Core.csproj | 2 +- Brizco.Core/EntityServices/UserService.cs | 3 +- Brizco.Domain/Brizco.Domain.csproj | 16 +-- .../Brizco.Infrastructure.csproj | 4 +- Brizco.Infrastructure/Services/SmsService.cs | 29 +++- Brizco.Repository/Brizco.Repository.csproj | 16 +-- 15 files changed, 242 insertions(+), 61 deletions(-) diff --git a/.version b/.version index cab18c4..f56b265 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -0.1.3.3 \ No newline at end of file +0.1.4.0 \ No newline at end of file diff --git a/Brizco.Api/AppSettings/appsettings.Development.json b/Brizco.Api/AppSettings/appsettings.Development.json index 1f687cf..79b9a74 100644 --- a/Brizco.Api/AppSettings/appsettings.Development.json +++ b/Brizco.Api/AppSettings/appsettings.Development.json @@ -13,7 +13,7 @@ } }, "SiteSettings": { - "BaseUrl": "http://localhost:32769", + "BaseUrl": "http://192.168.88.12:32769", "KaveNegarApiKey": "3735494B4143727A794346457461576A2B4B6668414973424E333561505A694B", "UserSetting": { "Username": "root", diff --git a/Brizco.Api/Brizco.Api.csproj b/Brizco.Api/Brizco.Api.csproj index b3be273..1dfd29d 100644 --- a/Brizco.Api/Brizco.Api.csproj +++ b/Brizco.Api/Brizco.Api.csproj @@ -6,52 +6,52 @@ enable Linux ..\docker-compose.dcproj - 0.1.3.3 - 0.1.3.3 + 0.1.4.0 + 0.1.4.0 - + - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - - - - - - - + + + + + + + - - + + - + - + diff --git a/Brizco.Api/Controllers/ActivityController.cs b/Brizco.Api/Controllers/ActivityController.cs index e116c04..f200d3d 100644 --- a/Brizco.Api/Controllers/ActivityController.cs +++ b/Brizco.Api/Controllers/ActivityController.cs @@ -17,7 +17,7 @@ public class ActivityController : ICarterModule .WithDisplayName("GetActivity") .HasApiVersion(1.0); - group.MapGet("done/{id:guid}", DoneActivityAsync) + group.MapPost("done/{id:guid}", DoneActivityAsync) .WithDisplayName("DoneActivity") .HasApiVersion(1.0); diff --git a/Brizco.Api/Dockerfile b/Brizco.Api/Dockerfile index bc68f77..3484f81 100644 --- a/Brizco.Api/Dockerfile +++ b/Brizco.Api/Dockerfile @@ -1,10 +1,10 @@ #See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src COPY ["Berizco.Api/Berizco.Api.csproj", "Berizco.Api/"] RUN dotnet restore "Berizco.Api/Berizco.Api.csproj" diff --git a/Brizco.Common/Brizco.Common.csproj b/Brizco.Common/Brizco.Common.csproj index 1041f6a..3e73338 100644 --- a/Brizco.Common/Brizco.Common.csproj +++ b/Brizco.Common/Brizco.Common.csproj @@ -1,6 +1,19 @@  - + + net8.0 + 10 + enable + enable + + + + + + + + + diff --git a/Brizco.Common/Models/Claims/ApplicationClaims.cs b/Brizco.Common/Models/Claims/ApplicationClaims.cs index 77f8241..38fbf63 100644 --- a/Brizco.Common/Models/Claims/ApplicationClaims.cs +++ b/Brizco.Common/Models/Claims/ApplicationClaims.cs @@ -54,6 +54,13 @@ public static class ApplicationClaims Title = "دسترسی کامل به شیفت بندی ها", Detail = "دسترسی به افزودن و مدیریت شیفت بندی فروشگاه شما" }; + public static ClaimDto ViewShiftPlans { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ViewShiftPlans, + Title = "مشاهده کامل به شیفت بندی ها", + Detail = "دسترسی به افزودن و مدیریت شیفت بندی فروشگاه شما" + }; public static ClaimDto ManageTasks { get; } = new ClaimDto { @@ -76,6 +83,78 @@ public static class ApplicationClaims Title = "دسترسی کامل به فعالیت ها", Detail = "دسترسی به افزودن و مدیریت فعالیت ها فروشگاه شما" }; + public static ClaimDto ViewActivities { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ViewActivities, + Title = "مشاهده فعالیت ها", + Detail = "دسترسی به مشاهده فعالیت ها فروشگاه شما" + }; + + + public static ClaimDto ManageRoutines { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ManageRoutines, + Title = "دسترسی کامل به روتین ها", + Detail = "دسترسی به افزودن و مدیریت فعالیت ها فروشگاه شما" + }; + public static ClaimDto ViewRoutines { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ViewRoutines, + Title = "مشاهده روتین ها", + Detail = "دسترسی به مشاهده فعالیت ها فروشگاه شما" + }; + + + public static ClaimDto ManagePositions { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ManagePositions, + Title = "دسترسی کامل به پوزیشن ها", + Detail = "دسترسی به افزودن و مدیریت فعالیت ها فروشگاه شما" + }; + public static ClaimDto ViewPositions { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ViewPositions, + Title = "مشاهده پوزیشن ها", + Detail = "دسترسی به مشاهده فعالیت ها فروشگاه شما" + }; + + + public static ClaimDto ManageSections { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ManageSections, + Title = "دسترسی کامل به سکشن ها", + Detail = "دسترسی به افزودن و مدیریت فعالیت ها فروشگاه شما" + }; + public static ClaimDto ViewSections { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ViewSections, + Title = "مشاهده سکشن ها", + Detail = "دسترسی به مشاهده فعالیت ها فروشگاه شما" + }; + + + + public static ClaimDto ViewDashboard { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ViewDashboard, + Title = "دسترسی کامل به داشبورد ها", + Detail = "دسترسی به داشبورد ها فروشگاه شما" + }; + public static ClaimDto ViewComplexSettings { get; } = new ClaimDto + { + Type = CustomClaimType.Permission, + Value = ApplicationPermission.ViewComplexSettings, + Title = "مشاهده تنظیمات ها", + Detail = "دسترسی به مشاهده تنظیمات ها فروشگاه شما" + }; public static List AllClaimDtos = new List { @@ -89,6 +168,20 @@ public static class ApplicationClaims ViewComplexes, ManageComplexes, + + ViewActivities, + + ManageRoutines, + ViewRoutines, + + ManagePositions, + ViewPositions, + + ManageSections, + ViewSections, + + ViewComplexSettings, + ViewDashboard }; public static List AllClaims = new List @@ -96,7 +189,6 @@ public static class ApplicationClaims ManageStaffs.GetClaim, ViewStaffs.GetClaim, - ManageActivities.GetClaim, ViewTasks.GetClaim, ManageTasks.GetClaim, @@ -106,6 +198,21 @@ public static class ApplicationClaims ViewComplexes.GetClaim, ManageComplexes.GetClaim, + + ManageActivities.GetClaim, + ViewActivities.GetClaim, + + ManageRoutines.GetClaim, + ViewRoutines.GetClaim, + + ManagePositions.GetClaim, + ViewPositions.GetClaim, + + ManageSections.GetClaim, + ViewSections.GetClaim, + + ViewDashboard.GetClaim, + ViewComplexSettings.GetClaim }; public static List ManagerClaims = new List @@ -114,29 +221,55 @@ public static class ApplicationClaims ViewStaffs.GetClaim, ManageActivities.GetClaim, + ViewActivities.GetClaim, + ViewTasks.GetClaim, ManageTasks.GetClaim, ManageShiftPlans.GetClaim, + ViewShiftPlans.GetClaim, + ViewShifts.GetClaim, ManageShifts.GetClaim, + + ManageRoutines.GetClaim, + ViewRoutines.GetClaim, + + ManagePositions.GetClaim, + ViewPositions.GetClaim, + + ManageSections.GetClaim, + ViewSections.GetClaim, + + ViewDashboard.GetClaim, + ViewComplexSettings.GetClaim }; public static List SuperVisorClaims = new List { ManageActivities.GetClaim, + ViewActivities.GetClaim, + ViewTasks.GetClaim, ManageTasks.GetClaim, ManageShiftPlans.GetClaim, + ViewShiftPlans.GetClaim, + ViewShifts.GetClaim, ManageShifts.GetClaim, + + ViewDashboard.GetClaim }; public static List StaffClaims = new List { ManageActivities.GetClaim, + ViewActivities.GetClaim, + ViewTasks.GetClaim, + + ViewDashboard.GetClaim }; } diff --git a/Brizco.Common/Models/Claims/ApplicationPermission.cs b/Brizco.Common/Models/Claims/ApplicationPermission.cs index e32910e..a9ff72f 100644 --- a/Brizco.Common/Models/Claims/ApplicationPermission.cs +++ b/Brizco.Common/Models/Claims/ApplicationPermission.cs @@ -10,9 +10,25 @@ public static class ApplicationPermission public const string ManageShifts = nameof(ManageShifts); public const string ViewShifts = nameof(ViewShifts); + + public const string ViewShiftPlans = nameof(ViewShiftPlans); public const string ManageShiftPlans = nameof(ManageShiftPlans); public const string ManageTasks = nameof(ManageTasks); public const string ViewTasks = nameof(ViewTasks); + public const string ManageActivities = nameof(ManageActivities); + public const string ViewActivities = nameof(ViewActivities); + + public const string ManageRoutines = nameof(ManageRoutines); + public const string ViewRoutines = nameof(ViewRoutines); + + public const string ManagePositions = nameof(ManagePositions); + public const string ViewPositions = nameof(ViewPositions); + + public const string ManageSections = nameof(ManageSections); + public const string ViewSections = nameof(ViewSections); + + public const string ViewDashboard = nameof(ViewDashboard); + public const string ViewComplexSettings = nameof(ViewComplexSettings); } diff --git a/Brizco.Core/BaseServices/JwtService.cs b/Brizco.Core/BaseServices/JwtService.cs index da44f99..78a8572 100644 --- a/Brizco.Core/BaseServices/JwtService.cs +++ b/Brizco.Core/BaseServices/JwtService.cs @@ -67,7 +67,7 @@ public class JwtService : IJwtService public async Task> Generate(TUser user, Guid complexId, Guid roleId) where TUser : ApplicationUser { var tokenId = StringExtensions.GetId(8); - var claims = await GetClaims(user, tokenId); + var claims = await GetClaims(user, tokenId,roleId.ToString()); claims.Add(new Claim("ComplexId", complexId.ToString())); return BaseGenerate(user, claims); @@ -150,6 +150,7 @@ public class JwtService : IJwtService var handler = new JwtSecurityTokenHandler(); var token = new AccessToken(handler.CreateJwtSecurityToken(desctiptor)); token.User = user.Adapt(); + token.Permissions = claims.Where(c => c.Type == "Permission").Select(c => c.Value).ToList(); return token; } diff --git a/Brizco.Core/Brizco.Core.csproj b/Brizco.Core/Brizco.Core.csproj index ce14a5c..a404c63 100644 --- a/Brizco.Core/Brizco.Core.csproj +++ b/Brizco.Core/Brizco.Core.csproj @@ -12,7 +12,7 @@ - + diff --git a/Brizco.Core/EntityServices/UserService.cs b/Brizco.Core/EntityServices/UserService.cs index c452f16..a2786c4 100644 --- a/Brizco.Core/EntityServices/UserService.cs +++ b/Brizco.Core/EntityServices/UserService.cs @@ -182,7 +182,8 @@ public class UserService : IUserService NationalId = request.NationalId, BirthDate = DateTimeExtensions.UnixTimeStampToDateTime(request.BirthDateTimeStamp), Gender = request.Gender, - SignUpStatus = SignUpStatus.SignUpCompleted + SignUpStatus = SignUpStatus.SignUpCompleted, + PhoneNumberConfirmed = true }; if (!request.Password.IsNullOrEmpty()) diff --git a/Brizco.Domain/Brizco.Domain.csproj b/Brizco.Domain/Brizco.Domain.csproj index 7d4abd0..e79fe8c 100644 --- a/Brizco.Domain/Brizco.Domain.csproj +++ b/Brizco.Domain/Brizco.Domain.csproj @@ -1,21 +1,21 @@  - + - + diff --git a/Brizco.Infrastructure/Brizco.Infrastructure.csproj b/Brizco.Infrastructure/Brizco.Infrastructure.csproj index 680335f..7a8bfbd 100644 --- a/Brizco.Infrastructure/Brizco.Infrastructure.csproj +++ b/Brizco.Infrastructure/Brizco.Infrastructure.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -11,7 +11,7 @@ - + diff --git a/Brizco.Infrastructure/Services/SmsService.cs b/Brizco.Infrastructure/Services/SmsService.cs index 16b0af2..8dc0b82 100644 --- a/Brizco.Infrastructure/Services/SmsService.cs +++ b/Brizco.Infrastructure/Services/SmsService.cs @@ -1,16 +1,22 @@ -namespace Brizco.Infrastructure.Services; +using Microsoft.Extensions.Hosting; + +namespace Brizco.Infrastructure.Services; public class SmsService : ISmsService { private readonly IRestApiWrapper _restApiWrapper; private readonly ILogger _logger; + private readonly IHostEnvironment _environment; private readonly SiteSettings _siteSettings; - public SmsService(IRestApiWrapper restApiWrapper, + public SmsService( + IRestApiWrapper restApiWrapper, IOptionsSnapshot optionsSnapshot, - ILogger logger) + ILogger logger, + IHostEnvironment environment) { _restApiWrapper = restApiWrapper; _logger = logger; + _environment = environment; _siteSettings = optionsSnapshot.Value; } public async Task SendForgerPasswordAsync(string phoneNumber, string newPassword) @@ -24,10 +30,21 @@ public class SmsService : ISmsService public async Task SendVerifyCodeAsync(string phoneNumber, string verifyCode) { - var rest = await _restApiWrapper.KaveNegarRestApi.SendLookUp(_siteSettings.KaveNegarApiKey, phoneNumber, verifyCode, null, null, null, "login-brizco"); + try + { + var rest = await _restApiWrapper.KaveNegarRestApi.SendLookUp(_siteSettings.KaveNegarApiKey, phoneNumber, + verifyCode, null, null, null, "login-brizco"); - if (rest.Return.status != 200) - throw new BaseApiException(ApiResultStatusCode.SendSmsError, rest.Return.message); + if (rest.Return.status != 200 && _environment.IsProduction()) + throw new BaseApiException(ApiResultStatusCode.SendSmsError, rest.Return.message); + } + catch (ApiException apiException) + { + if (_environment.IsProduction()) + throw ; + else + _logger.LogError(apiException.Message); + } } } \ No newline at end of file diff --git a/Brizco.Repository/Brizco.Repository.csproj b/Brizco.Repository/Brizco.Repository.csproj index c9e20c8..9a14425 100644 --- a/Brizco.Repository/Brizco.Repository.csproj +++ b/Brizco.Repository/Brizco.Repository.csproj @@ -7,22 +7,22 @@ - - + + - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + +