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
-
-
-
+
+
+