Hibajavítás hegyek
This commit is contained in:
@@ -170,7 +170,7 @@ namespace WorkFlowCheck.BL.Services
|
||||
IsEditable = true,
|
||||
UserId = checkListHeaderNewDTO.UserId,
|
||||
ShortName = "",
|
||||
Description = "",
|
||||
Description = checkListTemplateHeader.Description ?? "",
|
||||
DocumentNumber = documentNumber,
|
||||
GuidNumber = Guid.NewGuid(),
|
||||
IsDeleted = false,
|
||||
@@ -227,7 +227,10 @@ namespace WorkFlowCheck.BL.Services
|
||||
checkListHeader.CheckStatus = CheckStatus.Signed;
|
||||
checkListHeader.IsEditable = false;
|
||||
checkListHeader.AcceptUserId = userid;
|
||||
Log.ForContext("TAG", "BusinessFlow").Warning($"Ellenőrzési lap státuszváltozása, jóváhasyás: Ellenőrzés:{id}, Felhasználó:{userid}");
|
||||
|
||||
checkListHeader.DateExecution = DateTime.Now;
|
||||
|
||||
Log.ForContext("TAG", "BusinessFlow").Warning($"Ellenőrzési lap státuszváltozása, jóváhagyás: Ellenőrzés:{checkListHeader.DocumentNumber}, Felhasználó: {checkListHeader.AcceptUser.LastName} {checkListHeader.AcceptUser.FirstName}");
|
||||
await _dbContext.SaveChangesAsync();
|
||||
|
||||
var pdf = await CreateCheckListHeaderPDFAsync(id);
|
||||
|
||||
@@ -349,9 +349,10 @@ namespace WorkFlowCheck.BL.Services
|
||||
try
|
||||
{
|
||||
var res = await _dbContext.CheckListHeaders
|
||||
.Where(w => (w.IsEditable &&
|
||||
w.IsDeleted != true) || (w.CheckStatus == CheckStatus.Blocked)
|
||||
)
|
||||
.Where(w => w.CheckStatus == CheckStatus.Open ||
|
||||
w.CheckStatus == CheckStatus.InProgress ||
|
||||
w.CheckStatus == CheckStatus.Blocked ||
|
||||
w.CheckStatus == CheckStatus.Sent)
|
||||
.Include(i => i.CheckListRows)
|
||||
//.ThenInclude(i => i.CheckListTemplateRow)
|
||||
.AsNoTracking()
|
||||
@@ -385,43 +386,6 @@ namespace WorkFlowCheck.BL.Services
|
||||
if (res != null && (res.CheckStatus == CheckStatus.Open ||
|
||||
res.CheckStatus == CheckStatus.InProgress))
|
||||
{
|
||||
if (NeedBlocking(checkListHeaderDTO))
|
||||
{
|
||||
/// TODO: blokkolás miatt
|
||||
res.CheckStatus = CheckStatus.Blocked;
|
||||
await _dbContext.SaveChangesAsync();
|
||||
|
||||
Log.ForContext("TAG", "BusinessFlow").Warning($"Ellenőrzési lap blokkolva: Ellenőrzés:{checkListHeaderDTO.Id}, Felhasználó:{_requestContext.CurrentUsername}");
|
||||
|
||||
var user = await _userService.GetUserAsync(_requestContext.CurrentUserId ?? 1);
|
||||
|
||||
foreach (var item in user.RoleDTO)
|
||||
{
|
||||
var deviceMessageDTO = new DeviceMessageDTO()
|
||||
{
|
||||
IsReaded = false,
|
||||
Message = $"Ellenőrző lap blokkolva! [{checkListHeaderDTO.DocumentNumber}]",
|
||||
SendDate = DateTime.UtcNow,
|
||||
ExtraDataJSON = "",
|
||||
RoleId = item.ParentId,
|
||||
DeviceIdFrom = "",
|
||||
DeviceIdTo = "",
|
||||
};
|
||||
|
||||
await this.DeviceMessageSend(deviceMessageDTO);
|
||||
|
||||
var fCMMessageDTO = new FCMMessageDTO
|
||||
{
|
||||
Body = deviceMessageDTO.Message,
|
||||
Title = "Blokkolási értesítés",
|
||||
UserId = user.Id,
|
||||
};
|
||||
await _messageService.SendFCMMessageToLastToken(fCMMessageDTO);
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
res.CheckStatus = CheckStatus.InProgress;
|
||||
var ids = checkListHeaderDTO.CheckListRowDTO?.Select(r => r.Id).ToList();
|
||||
if (ids != null && ids.Count > 0)
|
||||
{
|
||||
@@ -448,6 +412,47 @@ namespace WorkFlowCheck.BL.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
await _dbContext.SaveChangesAsync();
|
||||
retVal = _mapper.Map<CheckListHeaderDTO>(res);
|
||||
|
||||
if (NeedBlocking(checkListHeaderDTO))
|
||||
{
|
||||
/// TODO: blokkolás miatt
|
||||
res.CheckStatus = CheckStatus.Blocked;
|
||||
await _dbContext.SaveChangesAsync();
|
||||
|
||||
Log.ForContext("TAG", "BusinessFlow").Warning($"Ellenőrzési lap blokkolva: Ellenőrzés:{checkListHeaderDTO.Id}, Felhasználó:{_requestContext.CurrentUsername}");
|
||||
|
||||
var user = await _userService.GetUserAsync(_requestContext.CurrentUserId ?? 1);
|
||||
|
||||
foreach (var item in user.RoleDTO)
|
||||
{
|
||||
var deviceMessageDTO = new DeviceMessageDTO()
|
||||
{
|
||||
IsReaded = false,
|
||||
Message = $"Ellenőrző lap blokkolva! [{checkListHeaderDTO.DocumentNumber}]",
|
||||
SendDate = DateTime.UtcNow,
|
||||
ExtraDataJSON = "",
|
||||
RoleId = item.ParentId,
|
||||
DeviceIdFrom = "",
|
||||
DeviceIdTo = "",
|
||||
};
|
||||
|
||||
await this.DeviceMessageSend(deviceMessageDTO);
|
||||
|
||||
var fCMMessageDTO = new FCMMessageDTO
|
||||
{
|
||||
Body = deviceMessageDTO.Message,
|
||||
Title = "Blokkolási értesítés",
|
||||
UserId = user.Id,
|
||||
};
|
||||
await _messageService.SendFCMMessageToLastToken(fCMMessageDTO);
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
res.CheckStatus = CheckStatus.InProgress;
|
||||
|
||||
if (CheckIfLastReached(checkListHeaderDTO))
|
||||
{
|
||||
/// TODO: most kell a CheckStatust állítani és menjen üzenet !
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -10,10 +12,19 @@ namespace WorkFlowCheck.Common.DTO
|
||||
public class RoleCheckListTemplateHeaderDTO
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "A szabály megnevezésének megadása kötelező.")]
|
||||
[DisplayName("Szabály")]
|
||||
public int RoleId { get; set; }
|
||||
public RoleDTO? RoleDTO { get; set; } = null!;
|
||||
|
||||
[Required(ErrorMessage = "Az ellenőrzési sablon megadása kötelező.")]
|
||||
[DisplayName("Ellenőrzési sablon")]
|
||||
public int CheckListTemplateHeaderId { get; set; }
|
||||
public CheckListTemplateHeaderDTO? CheckListTemplateHeaderDTO { get; set; } = null!;
|
||||
|
||||
|
||||
[DisplayName("Engedélyezve?")]
|
||||
public bool Enabled { get; set; } = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -10,10 +12,18 @@ namespace WorkFlowCheck.Common.DTO
|
||||
public class RoleCheckPointDTO
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "A szabály megadása kötelező.")]
|
||||
[DisplayName("Szabály")]
|
||||
public int RoleId { get; set; }
|
||||
public RoleDTO? RoleDTO { get; set; } = null!;
|
||||
|
||||
[Required(ErrorMessage = "Az ellenőrzési pont megadása kötelező.")]
|
||||
[DisplayName("Ellenőrzési pont")]
|
||||
public int CheckPointId { get; set; }
|
||||
public CheckPointDTO? CheckPointDTO { get; set; } = null!;
|
||||
|
||||
[DisplayName("Engedélyezve?")]
|
||||
public bool Enabled { get; set; } = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -16,9 +17,13 @@ namespace WorkFlowCheck.Common.DTO
|
||||
[DisplayName("Régi jelszó")]
|
||||
public string OldPassword { get; set; } = null!;
|
||||
|
||||
[Required(ErrorMessage = "A jelszó kötelező.")]
|
||||
[RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{6,}$", ErrorMessage = "Az új jelszónak legalább 6 karakter hosszúnak kell lennie, és tartalmaznia kell kis- és nagybetűt, számot és speciális karaktert.")]
|
||||
[DisplayName("Új jelszó")]
|
||||
public string NewPassword1 { get; set; } = null!;
|
||||
|
||||
[Required(ErrorMessage = "A jelszó kötelező.")]
|
||||
[RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{6,}$", ErrorMessage = "Az új jelszónak legalább 6 karakter hosszúnak kell lennie, és tartalmaznia kell kis- és nagybetűt, számot és speciális karaktert.")]
|
||||
[DisplayName("Jelszó megerősítése")]
|
||||
public string NewPassword2 { get; set; } = null!;
|
||||
|
||||
|
||||
@@ -25,9 +25,12 @@ namespace WorkFlowCheck.Common.DTO
|
||||
[DisplayName("Felhasználó neve")]
|
||||
public string UserName { get;set; } = null!;
|
||||
|
||||
[Required(ErrorMessage = "A jelszó kötelező.")]
|
||||
[RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{6,}$", ErrorMessage = "A jelszónak legalább 6 karakter hosszúnak kell lennie, és tartalmaznia kell kis- és nagybetűt, számot és speciális karaktert.")]
|
||||
[DisplayName("Jelszó")]
|
||||
public string Password { get; set; }
|
||||
|
||||
public string Password { get; set; } = null!;
|
||||
|
||||
|
||||
public string JwtToken { get; set; } = null!;
|
||||
|
||||
[DisplayName("Aktív")]
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace WorkFlowCheck.Web.Helpers
|
||||
public static class SystemHelper
|
||||
{
|
||||
public static string DatabaseName = "";
|
||||
public static string ProgramVersion = "v1.1.025";
|
||||
public static string ProgramVersion = "v1.1.027";
|
||||
|
||||
public async static Task GetAPIInfoAsync(IConfiguration configuration)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@using Microsoft.AspNetCore.Antiforgery
|
||||
@inject IAntiforgery Antiforgery
|
||||
@{
|
||||
ViewData["Title"] = "Ellenőrzési pont";
|
||||
ViewData["Title"] = "Szabály - ellenőrzési sablon";
|
||||
var RoleCheckListTemplateHeaderId = Model.RoleCheckListTemplateHeaderDTO.Id;
|
||||
var urlPost = Url.Page("./RoleCheckListTemplateHeaderEditPage", "Save");
|
||||
}
|
||||
|
||||
@@ -15,18 +15,18 @@
|
||||
<thead class="table-primary">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Role name</th>
|
||||
<th>Template name</th>
|
||||
<th>Enabled</th>
|
||||
<th>Szabály neve</th>
|
||||
<th>Ellenőrzési sablon neve</th>
|
||||
<th>Engedélyezve?</th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot class="table-light">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Role name</th>
|
||||
<th>Template name</th>
|
||||
<th>Enabled</th>
|
||||
<th>Szabály neve</th>
|
||||
<th>Ellenőrzési sablon neve</th>
|
||||
<th>Engedélyezve?</th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
@@ -90,17 +90,7 @@
|
||||
$('#tbRoleCheckListTemplateHeadersPage').on('click', '.delete-btn', function ()
|
||||
{
|
||||
const row = table.row($(this).closest('tr')).data();
|
||||
console.log(row);
|
||||
showConfirmModal({
|
||||
title: 'Törlés megerősítése',
|
||||
message: 'Biztosan törölni szeretnéd ezt az elemet?',
|
||||
okText: 'Törlés',
|
||||
cancelText: 'Mégsem'
|
||||
}).then(function(result) {
|
||||
if(result === 'ok') {
|
||||
console.log('Törlés végrehajtva');
|
||||
}
|
||||
});
|
||||
deleteEntity(table, '/UserAndRole/RoleCheckListTemplateHeadersPage?handler=DeleteRoleCheckListTemplateHeader', row.id);
|
||||
});
|
||||
</script>
|
||||
}
|
||||
|
||||
@@ -21,5 +21,10 @@ namespace WorkFlowCheck.Web.Pages.UserAndRole
|
||||
var results = await _userService.GetAllRoleCheckListTemplates();
|
||||
return new JsonResult(new { data = results });
|
||||
}
|
||||
public async Task<JsonResult> OnGetDeleteRoleCheckListTemplateHeader(int id)
|
||||
{
|
||||
var isSuccess = await _userService.DeleteRoleCheckListTemplateHeader(id);
|
||||
return new JsonResult(new { result = isSuccess });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@using Microsoft.AspNetCore.Antiforgery
|
||||
@inject IAntiforgery Antiforgery
|
||||
@{
|
||||
ViewData["Title"] = "Ellenőrzési pont";
|
||||
ViewData["Title"] = "Szabály - Ellenőrzési pont";
|
||||
var RoleCheckPointId = Model.RoleCheckPointDTO.Id;
|
||||
var urlPost = Url.Page("./RoleCheckPointEditPage", "Save");
|
||||
}
|
||||
@@ -96,6 +96,8 @@
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
const $form = $("#RoleCheckPointForm");
|
||||
|
||||
@@ -71,5 +71,6 @@ namespace WorkFlowCheck.Web.Pages.UserAndRole
|
||||
this.RoleCheckPoints.Add(new SelectListItem() { Value = CheckPoint.Id.ToString(), Text = CheckPoint.ShortName });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@using WorkFlowCheck.Common.Helper
|
||||
@using WorkFlowCheck.Common.DTO
|
||||
@{
|
||||
ViewData["Title"] = "Szabályok - Ellenőrzési sablonok";
|
||||
ViewData["Title"] = "Szabályok - Ellenőrzési pontok";
|
||||
}
|
||||
<h1>@ViewData["Title"]</h1>
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
<thead class="table-primary">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>>@DisplayNameHelper.GetDisplayName(nameof(RoleCheckPointDTO.RoleDTO.RoleName), typeof(RoleCheckPointDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleCheckPointDTO.CheckPointDTO.ShortName), typeof(RoleCheckPointDTO))</th>
|
||||
<th>Szabály @DisplayNameHelper.GetDisplayName(nameof(RoleDTO.RoleName), typeof(RoleDTO))</th>
|
||||
<th>Ellenőrzési pont @DisplayNameHelper.GetDisplayName(nameof(CheckPointDTO.ShortName), typeof(CheckPointDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleCheckPointDTO.Enabled), typeof(RoleCheckPointDTO))</th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
@@ -26,8 +26,8 @@
|
||||
<tfoot class="table-light">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>>@DisplayNameHelper.GetDisplayName(nameof(RoleCheckPointDTO.RoleDTO.RoleName), typeof(RoleCheckPointDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleCheckPointDTO.CheckPointDTO.ShortName), typeof(RoleCheckPointDTO))</th>
|
||||
<th>Szabály @DisplayNameHelper.GetDisplayName(nameof(RoleDTO.RoleName), typeof(RoleDTO))</th>
|
||||
<th>Ellenőrzési pont @DisplayNameHelper.GetDisplayName(nameof(CheckPointDTO.ShortName), typeof(CheckPointDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleCheckPointDTO.Enabled), typeof(RoleCheckPointDTO))</th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
@@ -91,18 +91,8 @@
|
||||
|
||||
$('#tbRoleCheckPointsPage').on('click', '.delete-btn', function ()
|
||||
{
|
||||
const row = table.row($(this).closest('tr')).data();
|
||||
console.log(row);
|
||||
showConfirmModal({
|
||||
title: 'Törlés megerősítése',
|
||||
message: 'Biztosan törölni szeretnéd ezt az elemet?',
|
||||
okText: 'Törlés',
|
||||
cancelText: 'Mégsem'
|
||||
}).then(function(result) {
|
||||
if(result === 'ok') {
|
||||
console.log('Törlés végrehajtva');
|
||||
}
|
||||
});
|
||||
const row = table.row($(this).closest('tr')).data();
|
||||
deleteEntity(table, '/UserAndRole/RoleCheckPointsPage?handler=DeleteRoleCheckPoint', row.id);
|
||||
});
|
||||
</script>
|
||||
}
|
||||
|
||||
@@ -21,5 +21,10 @@ namespace WorkFlowCheck.Web.Pages.UserAndRole
|
||||
var results = await _userService.GetAllRoleCheckPoints();
|
||||
return new JsonResult(new { data = results });
|
||||
}
|
||||
public async Task<JsonResult> OnGetDeleteRoleCheckPoint(int id)
|
||||
{
|
||||
var isSuccess = await _userService.DeleteRoleCheckPoint(id);
|
||||
return new JsonResult(new { result = isSuccess });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@using Microsoft.AspNetCore.Antiforgery
|
||||
@inject IAntiforgery Antiforgery
|
||||
@{
|
||||
ViewData["Title"] = "Ellenőrzési pont";
|
||||
ViewData["Title"] = "Szabály szerkesztése";
|
||||
var RoleId = Model.RoleDTO.Id;
|
||||
var urlPost = Url.Page("./RoleEditPage", "Save");
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
$('#tbRolesPage').on('click', '.delete-btn', function ()
|
||||
{
|
||||
const row = table.row($(this).closest('tr')).data();
|
||||
deleteEntity(table, '/UserAndRole/UserRole?handler=DeleteUser', row.id);
|
||||
deleteEntity(table, '/UserAndRole/RolePage?handler=DeleteRole', row.id);
|
||||
});
|
||||
</script>
|
||||
}
|
||||
|
||||
@@ -20,30 +20,46 @@
|
||||
<meta name="csrf-token" content="@Antiforgery.GetAndStoreTokens(HttpContext).RequestToken" />
|
||||
<input type="hidden" asp-for="UserDTO.Id" />
|
||||
<input type="hidden" asp-for="UserDTO.Password" value="" />
|
||||
|
||||
<input type="hidden" asp-for="UserDTO.NFCCode" value="" />
|
||||
|
||||
|
||||
<input type="hidden" asp-for="UserDTO.JwtToken" value="" />
|
||||
<input type="hidden" asp-for="UserDTO.RoleDTO" value="" />
|
||||
<div class="mb-3">
|
||||
<label asp-for="UserDTO.UserName"></label>
|
||||
<input asp-for="UserDTO.UserName" class="form-control" />
|
||||
<span asp-validation-for="UserDTO.UserName" class="text-danger"></span>
|
||||
</div>
|
||||
@if (Model.UserDTO.Id == 0)
|
||||
{
|
||||
<div class="mb-3">
|
||||
<label asp-for="UserDTO.UserName"></label>
|
||||
<input asp-for="UserDTO.UserName" class="form-control" autocomplete="off" />
|
||||
<span asp-validation-for="UserDTO.UserName" class="text-danger"></span>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="mb-3">
|
||||
<label asp-for="UserDTO.UserName"></label>
|
||||
<input asp-for="UserDTO.UserName" class="form-control" readonly />
|
||||
<span asp-validation-for="UserDTO.UserName" class="text-danger"></span>
|
||||
</div>
|
||||
}
|
||||
@if (Model.UserDTO.Id == 0)
|
||||
{
|
||||
<div class="row">
|
||||
<div class="mb-6">
|
||||
<label asp-for="UserDTO.Password"></label>
|
||||
<input asp-for="UserDTO.Password" class="form-control" type="password" />
|
||||
<div class="mb-3">
|
||||
<label asp-for="UserDTO.Password" class="form-label"></label>
|
||||
<div class="input-group">
|
||||
<input asp-for="UserDTO.Password" class="form-control" type="password" id="passwordInput" autocomplete="off" />
|
||||
<button class="btn btn-outline-secondary" type="button" onclick="togglePasswordVisibility()" tabindex="-1">
|
||||
<i class="bi bi-eye" id="toggleIcon"></i>
|
||||
</button>
|
||||
</div>
|
||||
<span asp-validation-for="UserDTO.Password" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="mb-6">
|
||||
<label asp-for="UserDTO.NFCCode"></label>
|
||||
<input asp-for="UserDTO.NFCCode" class="form-control" type="password" />
|
||||
<span asp-validation-for="UserDTO.NFCCode" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="mb-3">
|
||||
<label asp-for="UserDTO.NFCCode"></label>
|
||||
<input asp-for="UserDTO.NFCCode" class="form-control" />
|
||||
<span asp-validation-for="UserDTO.NFCCode" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label asp-for="UserDTO.Email"></label>
|
||||
<input asp-for="UserDTO.Email" class="form-control" />
|
||||
@@ -78,35 +94,38 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<br></br>
|
||||
<div class="card shadow p-4">
|
||||
<table id="tbUserPage" class="table table-bordered table-hover table-sm" style="width:100%">
|
||||
<thead class="table-primary">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.RoleName), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.ParentRoleName), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.IsAdmin), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanEnableBlocked), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanDownloadAPK), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanUseMobilApp), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanUseWebAdmin), typeof(RoleDTO))</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot class="table-light">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.RoleName), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.ParentRoleName), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.IsAdmin), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanEnableBlocked), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanDownloadAPK), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanUseMobilApp), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanUseWebAdmin), typeof(RoleDTO))</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
@if (Model.UserDTO.Id != 0)
|
||||
{
|
||||
<br></br>
|
||||
<div class="card shadow p-4">
|
||||
<table id="tbUserPage" class="table table-bordered table-hover table-sm" style="width:100%">
|
||||
<thead class="table-primary">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.RoleName), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.ParentRoleName), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.IsAdmin), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanEnableBlocked), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanDownloadAPK), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanUseMobilApp), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanUseWebAdmin), typeof(RoleDTO))</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot class="table-light">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.RoleName), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.ParentRoleName), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.IsAdmin), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanEnableBlocked), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanDownloadAPK), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanUseMobilApp), typeof(RoleDTO))</th>
|
||||
<th>@DisplayNameHelper.GetDisplayName(nameof(RoleDTO.CanUseWebAdmin), typeof(RoleDTO))</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@section Scripts {
|
||||
<script>
|
||||
|
||||
@@ -189,6 +208,7 @@
|
||||
const $form = $('#UserForm');
|
||||
|
||||
formData.UserDTO.RoleDTO=[];
|
||||
formData.UserDTO.JwtToken='';
|
||||
formData.UserDTO.Active = $('#UserForm input[name="UserDTO.Active"]').is(':checked');
|
||||
formData.UserDTO.NFCActive = $('#UserForm input[name="UserDTO.NFCActive"]').is(':checked');
|
||||
|
||||
|
||||
@@ -23,8 +23,17 @@ namespace WorkFlowCheck.Web.Pages.UserAndRole
|
||||
|
||||
public async Task OnGet(int id)
|
||||
{
|
||||
UserDTO = await _userService.GetUser(id);
|
||||
if (id == 0)
|
||||
{
|
||||
UserDTO = new UserDTO();
|
||||
}
|
||||
else
|
||||
{
|
||||
UserDTO = await _userService.GetUser(id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public async Task<IActionResult> OnPostSave([FromBody] UserDTO userDTO)
|
||||
{
|
||||
try
|
||||
|
||||
@@ -78,17 +78,7 @@
|
||||
$('#tbUserRolesPage').on('click', '.delete-btn', function ()
|
||||
{
|
||||
const row = table.row($(this).closest('tr')).data();
|
||||
console.log(row);
|
||||
showConfirmModal({
|
||||
title: 'Törlés megerősítése',
|
||||
message: 'Biztosan törölni szeretnéd ezt az elemet?',
|
||||
okText: 'Törlés',
|
||||
cancelText: 'Mégsem'
|
||||
}).then(function(result) {
|
||||
if(result === 'ok') {
|
||||
console.log('Törlés végrehajtva');
|
||||
}
|
||||
});
|
||||
deleteEntity(table, '/UserAndRole/UserRolePage?handler=DeleteUserRole', row.id);
|
||||
});
|
||||
</script>
|
||||
}
|
||||
|
||||
@@ -21,5 +21,10 @@ namespace WorkFlowCheck.Web.Pages.UserAndRole
|
||||
var results = await _userService.GetAllUserRoles();
|
||||
return new JsonResult(new { data = results });
|
||||
}
|
||||
public async Task<JsonResult> OnGetDeleteUserRole(int id)
|
||||
{
|
||||
var results = await _userService.DeleteUserRole(id);
|
||||
return new JsonResult(new { data = results });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,14 +21,16 @@ namespace WorkFlowCheck.Web.Services.Interfaces
|
||||
Task<UserRoleDTO> GetUserRole(int id);
|
||||
Task<List<UserRoleDTO>> GetAllUserRoles();
|
||||
Task<ApiResponseDTO<UserRoleDTO>> UpdateUserRole(UserRoleDTO userRoleDTO);
|
||||
|
||||
Task<bool> DeleteUserRole(int id);
|
||||
|
||||
Task<RoleCheckListTemplateHeaderDTO> GetRoleCheckListTemplateHeader(int id);
|
||||
Task<List<RoleCheckListTemplateHeaderDTO>> GetAllRoleCheckListTemplates();
|
||||
Task<ApiResponseDTO<RoleCheckListTemplateHeaderDTO>> UpdateRoleCheckListTemplateHeader(RoleCheckListTemplateHeaderDTO roleCheckListTemplateHeaderDTO);
|
||||
Task<bool> DeleteRoleCheckListTemplateHeader(int id);
|
||||
|
||||
Task<RoleCheckPointDTO> GetRoleCheckPoint(int id);
|
||||
Task<List<RoleCheckPointDTO>> GetAllRoleCheckPoints();
|
||||
Task<ApiResponseDTO<RoleCheckPointDTO>> UpdateRoleCheckPoint(RoleCheckPointDTO roleCheckPointDTO);
|
||||
Task<bool> DeleteRoleCheckPoint(int id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,12 @@ namespace WorkFlowCheck.Web.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
string endpoint = $"{_httpClient.BaseAddress}api/user/updateUser";
|
||||
if (userDTO.Id != null)
|
||||
{
|
||||
userDTO.Password = "xXyY3456!!!;;"; // Ez csak amiatt kell, hogy ne szálljon el a JSON
|
||||
}
|
||||
|
||||
string endpoint = $"{_httpClient.BaseAddress}api/user/UpdateUser";
|
||||
|
||||
using (HttpResponseMessage httpResponseMessage = await _httpClient.PostAsJsonAsync(endpoint, userDTO))
|
||||
{
|
||||
@@ -131,7 +136,7 @@ namespace WorkFlowCheck.Web.Services
|
||||
{
|
||||
UserName = username,
|
||||
Password = password,
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -161,7 +166,7 @@ namespace WorkFlowCheck.Web.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
string endpoint = $"{_httpClient.BaseAddress}api/User/Authenticate2F2";
|
||||
|
||||
var userSimpleDTO = new User2FADTO()
|
||||
@@ -188,7 +193,7 @@ namespace WorkFlowCheck.Web.Services
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
|
||||
return new ApiResponseDTO<UserDTO>
|
||||
{
|
||||
IsSuccess = false
|
||||
@@ -206,7 +211,7 @@ namespace WorkFlowCheck.Web.Services
|
||||
{
|
||||
UserName = username,
|
||||
OldPassword = oldpassword,
|
||||
NewPassword1 = newpassword,
|
||||
NewPassword1 = newpassword,
|
||||
NewPassword2 = newpassword,
|
||||
Code = code,
|
||||
Token2FA = token2FA
|
||||
@@ -421,6 +426,27 @@ namespace WorkFlowCheck.Web.Services
|
||||
};
|
||||
}
|
||||
}
|
||||
public async Task<bool> DeleteUserRole(int id)
|
||||
{
|
||||
string endpoint = $"{_httpClient.BaseAddress}api/User/DeleteUserRole/{id}";
|
||||
var retVal = false;
|
||||
try
|
||||
{
|
||||
var response = await _httpClient.GetFromJsonAsync<ApiResponseDTO<bool>>(endpoint);
|
||||
if (response != null)
|
||||
{
|
||||
if (response.IsSuccess)
|
||||
{
|
||||
return response.Data;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex.Message);
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
public async Task<RoleCheckListTemplateHeaderDTO> GetRoleCheckListTemplateHeader(int id)
|
||||
{
|
||||
@@ -492,6 +518,27 @@ namespace WorkFlowCheck.Web.Services
|
||||
};
|
||||
}
|
||||
}
|
||||
public async Task<bool> DeleteRoleCheckListTemplateHeader(int id)
|
||||
{
|
||||
string endpoint = $"{_httpClient.BaseAddress}api/User/DeleteRoleCheckListTemplateHeader/{id}";
|
||||
var retVal = false;
|
||||
try
|
||||
{
|
||||
var response = await _httpClient.GetFromJsonAsync<ApiResponseDTO<bool>>(endpoint);
|
||||
if (response != null)
|
||||
{
|
||||
if (response.IsSuccess)
|
||||
{
|
||||
return response.Data;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex.Message);
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
public async Task<RoleCheckPointDTO> GetRoleCheckPoint(int id)
|
||||
{
|
||||
@@ -563,7 +610,28 @@ namespace WorkFlowCheck.Web.Services
|
||||
};
|
||||
}
|
||||
}
|
||||
public async Task<bool> DeleteRoleCheckPoint(int id)
|
||||
{
|
||||
string endpoint = $"{_httpClient.BaseAddress}api/User/DeleteRoleCheckPoint/{id}";
|
||||
var retVal = false;
|
||||
try
|
||||
{
|
||||
var response = await _httpClient.GetFromJsonAsync<ApiResponseDTO<bool>>(endpoint);
|
||||
if (response != null)
|
||||
{
|
||||
if (response.IsSuccess)
|
||||
{
|
||||
return response.Data;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex.Message);
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -434,4 +434,18 @@ function saveEntity(csrfToken, data, url) {
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
function togglePasswordVisibility() {
|
||||
const passwordInput = document.getElementById("passwordInput");
|
||||
const icon = document.getElementById("toggleIcon");
|
||||
|
||||
if (passwordInput.type === "password") {
|
||||
passwordInput.type = "text";
|
||||
icon.classList.remove("bi-eye");
|
||||
icon.classList.add("bi-eye-slash");
|
||||
} else {
|
||||
passwordInput.type = "password";
|
||||
icon.classList.remove("bi-eye-slash");
|
||||
icon.classList.add("bi-eye");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user