diff --git a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/AuthClient.cs b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/AuthClient.cs
index f925f3464..d65c19773 100644
--- a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/AuthClient.cs
+++ b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/AuthClient.cs
@@ -5,12 +5,13 @@ namespace Masa.Contrib.BasicAbility.Auth;
public class AuthClient : IAuthClient
{
- public AuthClient(ICallerProvider callerProvider)
+ public AuthClient(ICallerProvider callerProvider, IMultiEnvironmentUserContext userContext)
{
- UserService = new UserService(callerProvider);
+ UserService = new UserService(callerProvider, userContext);
SubjectService = new SubjectService(callerProvider);
TeamService = new TeamService(callerProvider);
- PermissionService = new PermissionService(callerProvider);
+ ProjectService = new ProjectService(callerProvider, userContext);
+ PermissionService = new PermissionService(callerProvider, userContext);
}
public IUserService UserService { get; }
@@ -20,5 +21,7 @@ public AuthClient(ICallerProvider callerProvider)
public ITeamService TeamService { get; }
public IPermissionService PermissionService { get; }
+
+ public IProjectService ProjectService { get; }
}
diff --git a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/EnvironmentProvider.cs b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/EnvironmentProvider.cs
index a9db17500..794133c33 100644
--- a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/EnvironmentProvider.cs
+++ b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/EnvironmentProvider.cs
@@ -5,8 +5,15 @@ namespace Masa.Contrib.BasicAbility.Auth;
public class EnvironmentProvider : IEnvironmentProvider
{
+ readonly IMultiEnvironmentUserContext _multiEnvironmentUserContext;
+
+ public EnvironmentProvider(IMultiEnvironmentUserContext multiEnvironmentUserContext)
+ {
+ _multiEnvironmentUserContext = multiEnvironmentUserContext;
+ }
+
public string GetEnvironment()
{
- return "development";
+ return _multiEnvironmentUserContext.Environment ?? "";
}
}
diff --git a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Masa.Contrib.BasicAbility.Auth.csproj b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Masa.Contrib.BasicAbility.Auth.csproj
index 8b8c42b2c..68cab7db7 100644
--- a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Masa.Contrib.BasicAbility.Auth.csproj
+++ b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Masa.Contrib.BasicAbility.Auth.csproj
@@ -15,6 +15,7 @@
+
diff --git a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/PermissionService.cs b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/PermissionService.cs
index f0c755338..55936034e 100644
--- a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/PermissionService.cs
+++ b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/PermissionService.cs
@@ -6,30 +6,70 @@ namespace Masa.Contrib.BasicAbility.Auth.Service;
public class PermissionService : IPermissionService
{
readonly ICallerProvider _callerProvider;
+ readonly IUserContext _userContext;
- const string PARTY = "api/permission/";
+ const string PART = "api/permission/";
- public PermissionService(ICallerProvider callerProvider)
+ public PermissionService(ICallerProvider callerProvider, IUserContext userContext)
{
_callerProvider = callerProvider;
+ _userContext = userContext;
}
//todo remove userId param
- public async Task AuthorizedAsync(string appId, string code, Guid userId)
+ public async Task AuthorizedAsync(string appId, string code)
{
- var requestUri = $"{PARTY}authorized?appId={appId}&code={code}&userId={userId}";
+ var userId = _userContext.GetUserId();
+ var requestUri = $"{PART}authorized?appId={appId}&code={code}&userId={userId}";
return await _callerProvider.GetAsync(requestUri);
}
- public async Task> GetMenusAsync(string appId, Guid userId)
+ public async Task> GetMenusAsync(string appId)
{
- var requestUri = $"{PARTY}menus?appId={appId}&userId={userId}";
+ var userId = _userContext.GetUserId();
+ var requestUri = $"{PART}menus?appId={appId}&userId={userId}";
return await _callerProvider.GetAsync>(requestUri, default) ?? new();
}
- public async Task> GetElementPermissionsAsync(string appId, Guid userId)
+ public async Task> GetElementPermissionsAsync(string appId)
{
- var requestUri = $"{PARTY}element-permissions?appId={appId}&userId={userId}";
+ var userId = _userContext.GetUserId();
+ var requestUri = $"{PART}element-permissions?appId={appId}&userId={userId}";
return await _callerProvider.GetAsync>(requestUri, default) ?? new();
}
+
+ public async Task AddFavoriteMenuAsync(Guid menuId)
+ {
+ try
+ {
+ var userId = _userContext.GetUserId();
+ await _callerProvider.PutAsync($"{PART}addFavoriteMenu?permissionId={menuId}&userId={userId}", null);
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public async Task RemoveFavoriteMenuAsync(Guid menuId)
+ {
+ try
+ {
+ var userId = _userContext.GetUserId();
+ await _callerProvider.PutAsync($"{PART}removeFavoriteMenu?permissionId={menuId}&userId={userId}", null);
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public async Task> GetFavoriteMenuListAsync()
+ {
+ var userId = _userContext.GetUserId();
+ var requestUri = $"{PART}menu-favorite-list?userId={userId}";
+ return await _callerProvider.GetAsync>(requestUri, default) ?? new();
+ }
}
diff --git a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/ProjectService.cs b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/ProjectService.cs
new file mode 100644
index 000000000..ef4d19778
--- /dev/null
+++ b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/ProjectService.cs
@@ -0,0 +1,26 @@
+// Copyright (c) MASA Stack All rights reserved.
+// Licensed under the MIT License. See LICENSE.txt in the project root for license information.
+
+namespace Masa.Contrib.BasicAbility.Auth.Service;
+
+public class ProjectService : IProjectService
+{
+ readonly ICallerProvider _callerProvider;
+ readonly IMultiEnvironmentUserContext _multiEnvironmentUserContext;
+
+ const string PARTY = "api/project/";
+
+ public ProjectService(ICallerProvider callerProvider, IMultiEnvironmentUserContext multiEnvironmentUserContext)
+ {
+ _callerProvider = callerProvider;
+ _multiEnvironmentUserContext = multiEnvironmentUserContext;
+ }
+
+ public async Task> GetGlobalNavigations()
+ {
+ var userId = _multiEnvironmentUserContext.GetUserId();
+ var environment = _multiEnvironmentUserContext.Environment ?? "";
+ var requestUri = $"{PARTY}navigations?userId={userId}&environment={environment}";
+ return await _callerProvider.GetAsync>(requestUri) ?? new();
+ }
+}
diff --git a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/UserService.cs b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/UserService.cs
index e538218d7..675073728 100644
--- a/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/UserService.cs
+++ b/src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/UserService.cs
@@ -6,10 +6,12 @@ namespace Masa.Contrib.BasicAbility.Auth.Service;
public class UserService : IUserService
{
readonly ICallerProvider _callerProvider;
+ readonly IUserContext _userContext;
- public UserService(ICallerProvider callerProvider)
+ public UserService(ICallerProvider callerProvider, IUserContext userContext)
{
_callerProvider = callerProvider;
+ _userContext = userContext;
}
public async Task AddAsync(AddUserModel user)
@@ -47,5 +49,19 @@ public async Task FindByAccountAsync(string account)
var requestUri = $"api/user/findByAccount";
return await _callerProvider.GetAsync