Skip to content

Commit dda7e0f

Browse files
authored
feature(auth):auth sdk add GetListByAccountAsync、GetSecurityTokenAsync (#166)
* feat(auth):auth sdk add GetListByAccountAsync、GetSecurityTokenAsync * feat(GetSecurityTokenAsync):optimize GetSecurityTokenAsync * feat(oss):remove oss * feat(sso):add sso GetSecurityTokenAsync * refactor:Format code
1 parent 3fd0710 commit dda7e0f

File tree

6 files changed

+69
-2
lines changed

6 files changed

+69
-2
lines changed

src/BasicAbility/Masa.Contrib.BasicAbility.Auth/AuthClient.cs

+3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public AuthClient(ICallerProvider callerProvider, IMultiEnvironmentUserContext u
1212
TeamService = new TeamService(callerProvider, userContext);
1313
ProjectService = new ProjectService(callerProvider, userContext);
1414
PermissionService = new PermissionService(callerProvider, userContext);
15+
OssService = new OssService(callerProvider);
1516
}
1617

1718
public IUserService UserService { get; }
@@ -23,5 +24,7 @@ public AuthClient(ICallerProvider callerProvider, IMultiEnvironmentUserContext u
2324
public IPermissionService PermissionService { get; }
2425

2526
public IProjectService ProjectService { get; }
27+
28+
public IOssService OssService { get; }
2629
}
2730

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Copyright (c) MASA Stack All rights reserved.
2+
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.
3+
4+
namespace Masa.Contrib.BasicAbility.Auth.Service;
5+
6+
public class OssService : IOssService
7+
{
8+
readonly ICallerProvider _callerProvider;
9+
10+
public OssService(ICallerProvider callerProvider)
11+
{
12+
_callerProvider = callerProvider;
13+
}
14+
15+
public async Task<SecurityTokenModel> GetSecurityTokenAsync()
16+
{
17+
var requestUri = $"api/oss/GetSecurityToken";
18+
return await _callerProvider.GetAsync<SecurityTokenModel>(requestUri) ?? throw new UserFriendlyException("Unknown exception, contact the administrator");
19+
}
20+
}

src/BasicAbility/Masa.Contrib.BasicAbility.Auth/Service/UserService.cs

+6
Original file line numberDiff line numberDiff line change
@@ -155,5 +155,11 @@ public async Task<bool> DisableUserAsync(DisableUserModel user)
155155
var requestUri = $"api/user/disable";
156156
return await _callerProvider.PutAsync<bool>(requestUri, user);
157157
}
158+
159+
public async Task<List<UserSimpleModel>> GetListByAccountAsync(IEnumerable<string> accounts)
160+
{
161+
var requestUri = $"api/user/GetListByAccount";
162+
return await _callerProvider.GetAsync<object, List<UserSimpleModel>>(requestUri, new { accounts }) ?? new();
163+
}
158164
}
159165

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright (c) MASA Stack All rights reserved.
2+
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.
3+
4+
namespace Masa.Contrib.BasicAbility.Auth.Tests;
5+
6+
[TestClass]
7+
public class SsoServiceTest
8+
{
9+
[TestMethod]
10+
public async Task GetSecurityTokenAsync()
11+
{
12+
var data = new SecurityTokenModel("region", "accessKeyId", "accessKeySecret", "stsToken", "bucket");
13+
var requestUri = $"api/oss/GetSecurityToken";
14+
var callerProvider = new Mock<ICallerProvider>();
15+
callerProvider.Setup(provider => provider.GetAsync<SecurityTokenModel>(requestUri, default)).ReturnsAsync(data).Verifiable();
16+
var ossService = new OssService(callerProvider.Object);
17+
var result = await ossService.GetSecurityTokenAsync();
18+
callerProvider.Verify(provider => provider.GetAsync<SecurityTokenModel>(requestUri, default), Times.Once);
19+
Assert.IsTrue(result is not null);
20+
}
21+
}

test/Masa.Contrib.BasicAbility.Auth.Tests/UserServiceTest.cs

+18-1
Original file line numberDiff line numberDiff line change
@@ -401,8 +401,25 @@ public async Task TestObjectSaveUserSystemDataAsync(string systemId)
401401
await userService.SaveUserSystemDataAsync(systemId, value);
402402
callerProvider.Verify(provider => provider.PostAsync<object>(requestUri, It.IsAny<object>(), true, default), Times.Once);
403403
}
404-
}
405404

405+
[TestMethod]
406+
public async Task TestGetListByAccountAsync()
407+
{
408+
var data = new List<UserSimpleModel>()
409+
{
410+
new UserSimpleModel(Guid.NewGuid(), "account", "displayName")
411+
};
412+
var accounts = new List<string> { "account" };
413+
var requestUri = $"api/user/GetListByAccount";
414+
var callerProvider = new Mock<ICallerProvider>();
415+
callerProvider.Setup(provider => provider.GetAsync<object, List<UserSimpleModel>>(requestUri, It.IsAny<object>(), default)).ReturnsAsync(data).Verifiable();
416+
var userContext = new Mock<IUserContext>();
417+
var userService = new UserService(callerProvider.Object, userContext.Object);
418+
var result = await userService.GetListByAccountAsync(accounts);
419+
callerProvider.Verify(provider => provider.GetAsync<object, List<UserSimpleModel>>(requestUri, It.IsAny<object>(), default), Times.Once);
420+
Assert.IsTrue(result.Count == 1);
421+
}
422+
}
406423

407424
class SystemData
408425
{

0 commit comments

Comments
 (0)