Neues Benutzerrecht "Mitarbeiter Abwesenheiten löschen nach Ablauf" - MoK-Anteil, to be tested

ToDoOID=1328370181
This commit is contained in:
2026-08-03 10:41:29 +02:00
parent 913b51b58b
commit 2379ba2bd6
5 changed files with 30 additions and 4 deletions

View File

@@ -268,6 +268,12 @@ namespace BeWoPlanerMobil.Controllers
ViewData["AbsenceTimeError"] = "Beim Löschen der Abwesenheit ist ein Fehler aufgetreten!<br/><br/>Bitte wenden Sie sich an Ihren Administrator.";
}
if(absenceTime2Delete != null && !Model.CanDeleteAbsenceTime(absenceTime2Delete))
{
ViewData["AbsenceTimeError"] = "Sie haben nicht das Benutzerrecht, bereits vergangene Mitarbeiter-Abwesenheiten zu löschen.";
return PartialView("AbsenceTimePartial", Model);
}
var employee = Model.SelectedEmployee;
employee.AbsenceTimes.Remove(absenceTime2Delete);

View File

@@ -16,6 +16,8 @@ namespace BeWoPlanerMobil.Models
{
public bool HasRightToEdit => HasRightToEditCustomers;
public bool HasRightToDelete => HasRightToEditCustomers;
public bool CanDeleteAbsenceTime(AbsenceTimeDC absenceTime) => HasRightToDelete;
public long? ObjectOid => SelectedCustomerOid;
public TableID ObjectTid => TableID.Customer;
public string HtmlPrefix => "customer";

View File

@@ -1,4 +1,5 @@
using BS.Shared.DataContracts;
using BS.Shared;
using BS.Shared.DataContracts;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
@@ -9,6 +10,22 @@ namespace BeWoPlanerMobil.Models
{
public bool HasRightToEdit => HasRightToEditEmployeeAbsenceTimes;
public bool HasRightToDelete => HasRightToEditEmployeeAbsenceTimes;
public bool CanDeleteAbsenceTime(AbsenceTimeDC absenceTime)
{
if (!HasRightToDelete)
{
return false;
}
if (absenceTime.IsInThePast)
{
return CheckRight(UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry);
}
return true;
}
public string HtmlPrefix => "employee";
public EmployeeSessionModel EmployeeSessionModel => SessionModel as EmployeeSessionModel;

View File

@@ -16,5 +16,6 @@ namespace BeWoPlanerMobil.Models
long? AbsenteeOid { get; }
bool HasRightToEdit { get; }
bool HasRightToDelete { get; }
bool CanDeleteAbsenceTime(AbsenceTimeDC absenceTime);
}
}

View File

@@ -85,7 +85,7 @@
</p>
</div>
</div>
@if(Model.HasRightToEdit || Model.HasRightToDelete)
@if(Model.HasRightToEdit || Model.CanDeleteAbsenceTime(absenceTime))
{
<div class="col-sm-auto">
<div class="btn-toolbar justify-content-between">
@@ -97,8 +97,8 @@
</button>
</div>
}
@if(Model.HasRightToDelete)
@if(Model.CanDeleteAbsenceTime(absenceTime))
{
<div class="btn-group" role="group">
<button class="btn btn-danger" type="button" onclick="deleteAbsenceTime(@absenceTime.AbsenceTimeOid, '@absenceTime.Start.Value.GetIntervalDescription(absenceTime.End)')">