Fixed Default ConnectionData && Disabled UserSystem

This commit is contained in:
TheJoKlLa 2022-06-01 01:19:37 +02:00
parent f6105f10ac
commit 5034ca12c1
9 changed files with 92 additions and 30 deletions

View File

@ -30,8 +30,8 @@ namespace Borepin.PageModel
#region LoadData
public override Task LoadAPIData()
{
UserSystem.ManageInterface_Proxy manageInterface = (UserSystem.ManageInterface_Proxy)_API.Session.UserSystem.Manage;
CanManageUsers = !manageInterface.IsNull;
//UserSystem.ManageInterface_Proxy manageInterface = (UserSystem.ManageInterface_Proxy)_API.Session.UserSystem.Manage;
//CanManageUsers = !manageInterface.IsNull;
return Task.CompletedTask;
}

View File

@ -13,5 +13,6 @@ namespace Borepin.Service.Storage
Task<ConnectionData> GetDefault();
Task SetDefault(ConnectionData connectionData);
Task RemoveDefault();
}
}

View File

@ -62,6 +62,12 @@ namespace Borepin.Service.Storage
connectionData_List.Remove(connectionData);
await _SaveConnectionData(connectionData_List).ConfigureAwait(false);
ConnectionData connectionData_default = await GetDefault().ConfigureAwait(false);
if (connectionData_default.Equals(connectionData))
{
await RemoveDefault().ConfigureAwait(false);
}
}
public async Task UpdateTimestamp(ConnectionData connectionData)
@ -108,6 +114,12 @@ namespace Borepin.Service.Storage
string data = JsonConvert.SerializeObject(connectionData);
await _SecretStorageService.SetAsync(StorageKey_ConnecitonData_AutoConnect, data).ConfigureAwait(false);
}
public async Task RemoveDefault()
{
string data = JsonConvert.SerializeObject(null);
await _SecretStorageService.SetAsync(StorageKey_ConnecitonData_AutoConnect, data).ConfigureAwait(false);
}
#endregion
#region Private Methods

View File

@ -39,7 +39,7 @@ namespace FabAccessAPI_Test
Assert.Fail();
}
[Test]
[Test, Ignore("")]
public async Task Connect_InvalidCredentials()
{
API api = new API();

View File

@ -52,7 +52,7 @@ namespace FabAccessAPI_Test.API_TestEnv
[TestCase("ManagerA1", 13)]
[TestCase("MakerA1", 13)]
[TestCase("GuestA1", 13)]
[Order(3), Ignore("Not Implemented")]
[Order(3), Ignore("Not implemented")]
public async Task ListRoles(string username, int expectRolesCount)
{
API api = new API();

View File

@ -1,6 +1,8 @@
using FabAccessAPI;
using Capnp.Rpc;
using FabAccessAPI;
using FabAccessAPI.Schema;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
@ -40,12 +42,20 @@ namespace FabAccessAPI_Test.API_TestEnv
ConnectionData connectionData = TestEnv.CreateConnetionData(username);
await api.Connect(connectionData);
// TODO
bool methodNotImplemented = false;
try
{
User user = (await api.Session.UserSystem.Manage.AddUser(username2, TestEnv.PASSWORD).ConfigureAwait(false));
}
catch (RpcException exception) when (string.Equals(exception.Message, "method not implemented", StringComparison.Ordinal))
{
methodNotImplemented = true;
}
await api.Disconnect();
Assert.IsNull(user);
Assert.IsTrue(methodNotImplemented);
}
[TestCase("Admin1", "NewUserA1")]
@ -62,7 +72,7 @@ namespace FabAccessAPI_Test.API_TestEnv
await api.Disconnect();
Assert.IsNull(user);
Assert.IsNotNull(user);
}
[TestCase("Admin1", "Admin1")]
@ -82,7 +92,7 @@ namespace FabAccessAPI_Test.API_TestEnv
Assert.AreEqual(UserSystem.ManageInterface.AddUserError.AddUserErrorEnum.alreadyExists, error);
}
[TestCase("Admin1", "NewUserC1")]
[TestCase("Admin1", "")]
[Order(2)]
public async Task AddUser_InvalidUsername(string username, string username2)
{
@ -126,7 +136,7 @@ namespace FabAccessAPI_Test.API_TestEnv
await api.Disconnect();
Assert.IsNull(user);
Assert.IsNotNull(user);
}
}
}

View File

@ -1,6 +1,7 @@
using FabAccessAPI;
using FabAccessAPI.Schema;
using NUnit.Framework;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace FabAccessAPI_Test.API_TestEnv
@ -8,19 +9,59 @@ namespace FabAccessAPI_Test.API_TestEnv
[TestFixture]
public class User_Test
{
//[TestCase("Admin1")]
//[Order(1)]
//public async Task InfoInterface(string username)
//{
// API api = new API();
// ConnectionData connectionData = TestEnv.CreateConnetionData(username);
// await api.Connect(connectionData);
#region SetUp
[SetUp]
public async Task SetUp()
{
API api = new API();
ConnectionData connectionData = TestEnv.CreateConnetionData("Admin1");
await api.Connect(connectionData);
// User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false);
IReadOnlyList<User> user_list = await api.Session.UserSystem.Manage.GetUserList().ConfigureAwait(false);
// bool result = !((User.InfoInterface_Proxy)user.Info).IsNull;
List<Task> tasks = new List<Task>();
foreach (User u in user_list)
{
if (u.Username.StartsWith("New"))
{
tasks.Add(api.Session.UserSystem.Manage.RemoveUser(u));
}
}
// await api.Disconnect();
//}
await Task.WhenAll(tasks);
}
#endregion
[TestCase("Admin1", "NewMakerA1", "UseA", "ReadA", "DiscloseA")]
[Order(1)]
public async Task AddRoles(string username, string username2, params string[] roles)
{
API api = new API();
ConnectionData connectionData = TestEnv.CreateConnetionData(username);
await api.Connect(connectionData);
await api.Session.UserSystem.Manage.AddUser(username2, TestEnv.PASSWORD);
User user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just;
foreach(string s in roles)
{
await user.Admin.AddRole(new Role() { Name = s }).ConfigureAwait(false);
}
user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just;
List<Role> user_roles = new List<Role>(await user.Info.ListRoles().ConfigureAwait(false));
await api.Disconnect();
Assert.Multiple(() =>
{
Assert.AreEqual(3, user_roles.Count);
foreach (string s in roles)
{
Assert.IsTrue(user_roles.Exists(x => x.Name == s));
}
});
}
}
}

View File

@ -1,9 +1,7 @@
using FabAccessAPI;
using FabAccessAPI.Schema;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace FabAccessAPI_Test.API_TestEnv
@ -93,11 +91,11 @@ namespace FabAccessAPI_Test.API_TestEnv
});
}
[TestCase("Admin1", "somerole")]
[TestCase("ManagerA1")]
[TestCase("MakerA1")]
[TestCase("GuestA1")]
[Order(5), Ignore("Not Implemented")]
[TestCase("Admin1", "Admin", "ManageUsers")]
[TestCase("ManagerA1", "ManageA", "UseA", "ReadA", "DiscloseA", "ManageUsers")]
[TestCase("MakerA1", "UseA", "ReadA", "DiscloseA")]
[TestCase("GuestA1", "ReadA", "DiscloseA")]
[Order(5)]
public async Task ListUserRoles(string username, params string[] expect_roles)
{
API api = new API();

View File

@ -7,7 +7,7 @@ namespace FabAccessAPI_Test
public static class TestEnv
{
public const string SCHEMA = "fabaccess";
public const string TESTSERVER = "bffh.lab.bln.kjknet.de";
public const string TESTSERVER = "127.0.0.1";//"bffh.lab.bln.kjknet.de";
public const int TESTSERVER_PORT = 59666;
public const string PASSWORD = "secret";