Refaktorisierung der Lokalisierung und DTO-Integration
- Ersetzung von ITranslateService durch IStringLocalizer<X> für verbesserte Lokalisierung. - Aktualisierung der DTO-Klassen entsprechend der neuesten Core.DTO-Struktur. - Integration der neuen Klassen Result und DataResult aus Core.DTO für standardisierte Serviceantworten.
This commit is contained in:
@@ -9,6 +9,8 @@ using DigitalData.UserManager.Application;
|
||||
using DigitalData.UserManager.Application.DTOs.Auth;
|
||||
using DigitalData.Core.Contracts.Application;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Localization;
|
||||
using DigitalData.Core.DTO;
|
||||
|
||||
namespace DigitalData.UserManager.API.Controllers
|
||||
{
|
||||
@@ -20,14 +22,16 @@ namespace DigitalData.UserManager.API.Controllers
|
||||
private IMemoryCache _memoryCache;
|
||||
private IConfiguration _configuration;
|
||||
private IDirectorySearchService _dirSearchService;
|
||||
private readonly IStringLocalizer<Resource> _localizer;
|
||||
|
||||
public AuthController(IUserService userService, IGroupOfUserService gouService, IMemoryCache memoryCache, IConfiguration configuration, IDirectorySearchService directorySearchService)
|
||||
public AuthController(IUserService userService, IGroupOfUserService gouService, IMemoryCache memoryCache, IConfiguration configuration, IDirectorySearchService directorySearchService, IStringLocalizer<Resource> localizer)
|
||||
{
|
||||
_userService = userService;
|
||||
_gouService = gouService;
|
||||
_memoryCache = memoryCache;
|
||||
_configuration = configuration;
|
||||
_dirSearchService = directorySearchService;
|
||||
_localizer = localizer;
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
@@ -41,11 +45,11 @@ namespace DigitalData.UserManager.API.Controllers
|
||||
bool isValid = _dirSearchService.ValidateCredentials(login.Username, login.Password);
|
||||
|
||||
if (!isValid)
|
||||
return Unauthorized(_userService.Failed(MessageKey.UserNotFound.ToString()));
|
||||
return Unauthorized(Result.Fail().Message(_localizer[Key.UserNotFound]));
|
||||
|
||||
var gouMsg = await _gouService.HasGroup(login.Username, "PM_USER", caseSensitive:false);
|
||||
if(!gouMsg.IsSuccess)
|
||||
return Unauthorized(_userService.Failed(MessageKey.UnauthorizedUser.ToString()));
|
||||
return Unauthorized(Result.Fail().Message(_localizer[Key.UnauthorizedUser]));
|
||||
|
||||
//find the user
|
||||
var uRes = await _userService.ReadByUsernameAsync(login.Username);
|
||||
@@ -103,7 +107,7 @@ namespace DigitalData.UserManager.API.Controllers
|
||||
|
||||
if (!userDto.IsSuccess || userDto.Data is null)
|
||||
{
|
||||
return NotFound(_userService.Failed("User not found."));
|
||||
return NotFound(Result.Fail().Message(_localizer[Key.UserNotFound]));
|
||||
}
|
||||
|
||||
return Ok(userDto.Data);
|
||||
|
||||
@@ -6,11 +6,8 @@ using Microsoft.Extensions.Caching.Memory;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Security.Claims;
|
||||
using DigitalData.UserManager.Application;
|
||||
using DigitalData.UserManager.Application.DTOs.User;
|
||||
using System.DirectoryServices;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using Microsoft.Extensions.Localization;
|
||||
using DigitalData.Core.DTO;
|
||||
|
||||
namespace DigitalData.UserManager.API.Controllers
|
||||
{
|
||||
@@ -23,10 +20,12 @@ namespace DigitalData.UserManager.API.Controllers
|
||||
private IDirectorySearchService _dirSearchService;
|
||||
private IMemoryCache _memoryCache;
|
||||
private Dictionary<string, string> _customSearchFilters;
|
||||
private readonly IStringLocalizer<Resource> _localizer;
|
||||
|
||||
public DirectoryController(IConfiguration configuration, ILogger<DirectoryController> logger, IUserService userService, IDirectorySearchService directorySearchService, IMemoryCache memoryCache)
|
||||
public DirectoryController(IConfiguration configuration, ILogger<DirectoryController> logger, IStringLocalizer<Resource> localizer, IUserService userService, IDirectorySearchService directorySearchService, IMemoryCache memoryCache)
|
||||
{
|
||||
_logger = logger;
|
||||
_localizer = localizer;
|
||||
_userService = userService;
|
||||
_dirSearchService = directorySearchService;
|
||||
_memoryCache = memoryCache;
|
||||
@@ -76,11 +75,11 @@ namespace DigitalData.UserManager.API.Controllers
|
||||
bool isValid = _dirSearchService.ValidateCredentials(dirEntryUsername, searchRootCreateDto.DirEntryPassword);
|
||||
|
||||
if (!isValid)
|
||||
return Unauthorized(_dirSearchService.Failed(MessageKey.UserNotFound.ToString()));
|
||||
return Unauthorized(Result.Fail().Message(_localizer[Key.UserNotFound]));
|
||||
|
||||
var userResult = await _userService.ReadByUsernameAsync(dirEntryUsername);
|
||||
if(!userResult.IsSuccess || userResult.Data is null)
|
||||
return Unauthorized(_dirSearchService.Failed(MessageKey.UserNotFoundInLocalDB.ToString()));
|
||||
return Unauthorized(Result.Fail().Message(_localizer[Key.UserNotFoundInLocalDB]));
|
||||
|
||||
_dirSearchService.SetSearchRootCache(userResult.Data.Username, searchRootCreateDto.DirEntryPassword);
|
||||
return Ok();
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace DigitalData.UserManager.API.Controllers
|
||||
[HttpDelete]
|
||||
public async Task<IActionResult> Delete([FromQuery] int moduleId, [FromQuery]int userId)
|
||||
{
|
||||
IServiceMessage result = await _service.DeleteAsyncByModuleUserId(moduleId, userId);
|
||||
var result = await _service.DeleteAsyncByModuleUserId(moduleId, userId);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result);
|
||||
|
||||
@@ -6,14 +6,6 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Remove="nlog.config" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="nlog.config" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.14" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.4" />
|
||||
@@ -47,8 +39,8 @@
|
||||
<Reference Include="DigitalData.Core.Contracts">
|
||||
<HintPath>..\..\WebCoreModules\DigitalData.Core.Contracts\bin\Debug\net7.0\DigitalData.Core.Contracts.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Core.CultureServices">
|
||||
<HintPath>..\..\WebCoreModules\DigitalData.Core.CultureServices\bin\Debug\net7.0\DigitalData.Core.CultureServices.dll</HintPath>
|
||||
<Reference Include="DigitalData.Core.DTO">
|
||||
<HintPath>..\..\WebCoreModules\DigitalData.Core.API\bin\Debug\net7.0\DigitalData.Core.DTO.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Core.Infrastructure">
|
||||
<HintPath>..\..\WebCoreModules\DigitalData.Core.Infrastructure\bin\Debug\net7.0\DigitalData.Core.Infrastructure.dll</HintPath>
|
||||
|
||||
@@ -4,7 +4,6 @@ using DigitalData.UserManager.Application.Contracts;
|
||||
using DigitalData.UserManager.Application.Services;
|
||||
using DigitalData.UserManager.Infrastructure.Repositories;
|
||||
using DigitalData.UserManager.Infrastructure.Contracts;
|
||||
using DigitalData.Core.CultureServices;
|
||||
using DigitalData.Core.Application;
|
||||
using Microsoft.AspNetCore.Authentication.Cookies;
|
||||
using NLog.Web;
|
||||
@@ -35,14 +34,13 @@ try {
|
||||
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
|
||||
.AddCookie(options =>
|
||||
{
|
||||
options.Cookie.HttpOnly = false;
|
||||
//options.Cookie.SecurePolicy = CookieSecurePolicy.Always; //always https
|
||||
options.Cookie.SameSite = SameSiteMode.None;
|
||||
options.Cookie.HttpOnly = true; // Makes the cookie inaccessible to client-side scripts for security
|
||||
options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest; // Ensures cookies are sent over HTTPS only
|
||||
options.Cookie.SameSite = SameSiteMode.Strict; // Protects against CSRF attacks by restricting how cookies are sent with requests from external sites
|
||||
options.LoginPath = "/api/auth/login";
|
||||
options.LogoutPath = "/api/auth/logout";
|
||||
});
|
||||
|
||||
|
||||
builder.Services.AddDbContext<DDECMDbContext>(options =>
|
||||
options.UseSqlServer(builder.Configuration.GetConnectionString("DD_ECM_Connection"))
|
||||
.EnableDetailedErrors());
|
||||
@@ -61,15 +59,13 @@ try {
|
||||
});
|
||||
});
|
||||
|
||||
builder.Services.AddKeyTranslationService();
|
||||
|
||||
builder.Services.AddAutoMapper(typeof(UserMappingProfile).Assembly);
|
||||
builder.Services.AddAutoMapper(typeof(GroupMappingProfile).Assembly);
|
||||
builder.Services.AddAutoMapper(typeof(GroupOfUserMappingProfile).Assembly);
|
||||
builder.Services.AddAutoMapper(typeof(ModuleMappingProfile).Assembly);
|
||||
builder.Services.AddAutoMapper(typeof(ModuleOfUserMappingProfile).Assembly);
|
||||
builder.Services.AddAutoMapper(typeof(UserRepMappingProfile).Assembly);
|
||||
builder.Services.AddAutoMapper(typeof(DirectoryMappingProfile).Assembly);
|
||||
//builder.Services.AddAutoMapper(typeof(DirectoryMappingProfile).Assembly);
|
||||
|
||||
builder.Services.AddScoped<IUserRepository, UserRepository>();
|
||||
builder.Services.AddScoped<IGroupRepository, GroupRepository>();
|
||||
@@ -86,7 +82,6 @@ try {
|
||||
builder.Services.AddScoped<IUserRepService, UserRepService>();
|
||||
|
||||
builder.Services.AddDirectorySearchService();
|
||||
builder.Services.AddResponseService();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,7 +30,7 @@
|
||||
"targets": {
|
||||
"logfile": {
|
||||
"type": "File",
|
||||
"fileName": "${basedir}/logs/${shortdate}.log"
|
||||
"fileName": "E:/WebUserManager/logs/${shortdate}.log"
|
||||
},
|
||||
"logconsole": {
|
||||
"type": "Console"
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<targets>
|
||||
<target xsi:type="File" name="dailyfile"
|
||||
fileName="${basedir}/logs/${shortdate}.log"
|
||||
layout="${longdate} ${uppercase:${level}} ${message}" />
|
||||
</targets>
|
||||
|
||||
<rules>
|
||||
<logger name="*" minlevel="Debug" writeTo="dailyfile" />
|
||||
</rules>
|
||||
</nlog>
|
||||
@@ -275,7 +275,6 @@ E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.API.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.Application.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.Contracts.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.CultureServices.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.Infrastructure.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.UserManager.Application.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.UserManager.Domain.dll
|
||||
@@ -286,7 +285,6 @@ E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.API.pdb
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.Application.pdb
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.Contracts.pdb
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.CultureServices.pdb
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.Infrastructure.pdb
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\DigitalData.UserManager.API.csproj.AssemblyReference.cache
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\DigitalData.UserManager.API.GeneratedMSBuildEditorConfig.editorconfig
|
||||
@@ -303,9 +301,12 @@ E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\staticwebassets.build.json
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\staticwebassets.development.json
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\scopedcss\bundle\DigitalData.UserManager.API.styles.css
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\DigitalData.UserManager.API.csproj.CopyComplete
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\DigitalData.UserManager.API.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\refint\DigitalData.UserManager.API.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\DigitalData.UserManager.API.pdb
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\DigitalData.UserManager.API.genruntimeconfig.cache
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\ref\DigitalData.UserManager.API.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\Microsoft.Extensions.Localization.Abstractions.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.DTO.dll
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\bin\Debug\net7.0\DigitalData.Core.DTO.pdb
|
||||
E:\TekH\Visual Studio\WebUserManager\DigitalData.UserManager.API\obj\Debug\net7.0\DigitalD.2ACBF1F0.Up2Date
|
||||
|
||||
@@ -1 +1 @@
|
||||
5243960bb1a8dfa8a26e6ced911ddcfcfbd49603
|
||||
5db32c07a921a075542f8e4d13a06dff0a7877311019b550d9af1d527121948b
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"Hash": "CVuGk5G2Z4tefLO3i5UULN9tcqrmHVfR7Mp+pLcIhcg=",
|
||||
"Hash": "fpX0gIRTqJ92FKdK8Mopb4TdlAI0zjfIY8Z63x82Wg4=",
|
||||
"Source": "DigitalData.UserManager.API",
|
||||
"BasePath": "_content/DigitalData.UserManager.API",
|
||||
"Mode": "Default",
|
||||
@@ -26,6 +26,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -43,6 +45,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -60,6 +64,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -77,6 +83,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -94,6 +102,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -111,6 +121,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -128,6 +140,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -145,6 +159,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -162,6 +178,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -179,6 +197,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -196,6 +216,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -213,6 +235,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -230,6 +254,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -247,6 +273,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -264,6 +292,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -281,6 +311,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
@@ -298,6 +330,8 @@
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta charset="utf-8"/>
|
||||
<title>User Manager Portal</title>
|
||||
<base href="/"/>
|
||||
<user-manager-api href="https://172.24.12.39/api/" user-route="user" group-route="group" module-route="module" module-of-user-route="moduleOfUser" group-of-user-route="groupOfUser" user-representation-route="userRep" dir-group-route="directory/Group?propName=samaccountname" dir-user-route="directory/user" dir-route="directory" login-route="auth/login" ,="" logout-route="auth/logout" login-check-route="auth/check"/>
|
||||
<user-manager-api href="/api/" user-route="user" group-route="group" module-route="module" module-of-user-route="moduleOfUser" group-of-user-route="groupOfUser" user-representation-route="userRep" dir-group-route="directory/Group?propName=samaccountname" dir-user-route="directory/user" dir-route="directory" login-route="auth/login" ,="" logout-route="auth/logout" login-check-route="auth/check"/>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico"/>
|
||||
|
||||
Reference in New Issue
Block a user