Neues Benutzerrecht "Mitarbeiter Abwesenheiten löschen nach Ablauf" - Serveranteil
ToDoOID=1328370181
This commit is contained in:
@@ -193,6 +193,8 @@ namespace BeWo.Data.Security
|
|||||||
return "3.30";
|
return "3.30";
|
||||||
if (isRightVersion331(r))
|
if (isRightVersion331(r))
|
||||||
return "3.31";
|
return "3.31";
|
||||||
|
if (isRightVersion332(r))
|
||||||
|
return "3.32";
|
||||||
return BASE_VERSION;
|
return BASE_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,5 +254,10 @@ namespace BeWo.Data.Security
|
|||||||
|| r == UserRightType.Customer_DeleteMedication;
|
|| r == UserRightType.Customer_DeleteMedication;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool isRightVersion332(UserRightType r)
|
||||||
|
{
|
||||||
|
return r == UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1569,7 +1569,24 @@ namespace BeWo.Service.ServiceImplementations
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ServiceLogic.SetActivationType<AbsenceTime>(pOid2Version, ActivationTypeId.Deleted);
|
var user = GetLoggedInUser();
|
||||||
|
if (!UserRightHelper.UserHasRight(user, UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry))
|
||||||
|
{
|
||||||
|
var forbiddenOids = DAOFactory.GenericDAO.LoadByIDs<AbsenceTime>(pOid2Version.Keys)
|
||||||
|
.Where(a => a.EmployeeOid != null && a.End.HasValue && a.End.Value.Date < DateTime.Today)
|
||||||
|
.Select(a => a.Oid.Value)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (var oid in forbiddenOids)
|
||||||
|
{
|
||||||
|
pOid2Version.Remove(oid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pOid2Version.Count > 0)
|
||||||
|
{
|
||||||
|
ServiceLogic.SetActivationType<AbsenceTime>(pOid2Version, ActivationTypeId.Deleted);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using BeWo.Data.Access;
|
|||||||
using BeWo.Data.Entities;
|
using BeWo.Data.Entities;
|
||||||
using BeWo.Data.ICD10;
|
using BeWo.Data.ICD10;
|
||||||
using BeWo.Data.ICF;
|
using BeWo.Data.ICF;
|
||||||
|
using BeWo.Data.Security;
|
||||||
using BeWo.Data.Utils;
|
using BeWo.Data.Utils;
|
||||||
using BeWo.Service.AI;
|
using BeWo.Service.AI;
|
||||||
using BeWo.Service.Configuration;
|
using BeWo.Service.Configuration;
|
||||||
@@ -4391,8 +4392,15 @@ namespace BeWo.Service.ServiceImplementations
|
|||||||
{
|
{
|
||||||
//ServiceLogic.SetActivationType<AbsenceTime>(pOid2Version, ActivationTypeId.Deleted);
|
//ServiceLogic.SetActivationType<AbsenceTime>(pOid2Version, ActivationTypeId.Deleted);
|
||||||
|
|
||||||
var lOriginals = DAOFactory.GenericDAO.LoadByIDs<AbsenceTime>(pOid2Version.Select(e => e.Key)).Where(e => e.SystemEntryID == null).ToList();
|
var abwesenheiten = DAOFactory.GenericDAO.LoadByIDs<AbsenceTime>(pOid2Version.Select(e => e.Key)).Where(e => e.SystemEntryID == null).ToList();
|
||||||
DAOFactory.GenericDAO.Delete(lOriginals);
|
|
||||||
|
var user = SecurityUtils.GetLoggedInUser();
|
||||||
|
if (!UserRightHelper.UserHasRight(user, UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry))
|
||||||
|
{
|
||||||
|
abwesenheiten = abwesenheiten.Where(a => a.EmployeeOid == null || !a.End.HasValue || a.End.Value.Date >= DateTime.Today).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
DAOFactory.GenericDAO.Delete(abwesenheiten);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@@ -6876,6 +6884,12 @@ namespace BeWo.Service.ServiceImplementations
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
var user = SecurityUtils.GetLoggedInUser();
|
||||||
|
if (absenceTimeDC.IsInThePast && !UserRightHelper.UserHasRight(user, UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry))
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("Sie haben nicht das Recht, bereits vergangene Abwesenheiten zu löschen.");
|
||||||
|
}
|
||||||
|
|
||||||
var emp = DAOFactory.GenericDAO.GetByID<Employee>(absenceTimeDC.EmployeeOid.Value);
|
var emp = DAOFactory.GenericDAO.GetByID<Employee>(absenceTimeDC.EmployeeOid.Value);
|
||||||
emp.AbsenceTimes.Remove(emp.AbsenceTimes.First(a => a.Oid == absenceTimeDC.AbsenceTimeOid));
|
emp.AbsenceTimes.Remove(emp.AbsenceTimes.First(a => a.Oid == absenceTimeDC.AbsenceTimeOid));
|
||||||
DAOFactory.GenericDAO.Update(emp);
|
DAOFactory.GenericDAO.Update(emp);
|
||||||
|
|||||||
@@ -463,6 +463,7 @@ namespace BS.Shared
|
|||||||
Employee_AllowViewOwnTeam = 20006,
|
Employee_AllowViewOwnTeam = 20006,
|
||||||
Employee_AllowEditAbsenceTimes = 20007,
|
Employee_AllowEditAbsenceTimes = 20007,
|
||||||
Employee_AllowEditOvertimes = 20008,
|
Employee_AllowEditOvertimes = 20008,
|
||||||
|
Employee_AllowDeleteAbsenceTimesAfterExpiry = 20009,
|
||||||
|
|
||||||
Employee_ViewNotizen = 20010,
|
Employee_ViewNotizen = 20010,
|
||||||
Employee_EditNotizen = 20011,
|
Employee_EditNotizen = 20011,
|
||||||
|
|||||||
@@ -747,6 +747,7 @@ namespace BS.Shared.Core
|
|||||||
dict.Add(UserRightType.Employee_ViewNotizen, Translator.Translate("MitarbeiterSingular") + " Notizen ansehen");
|
dict.Add(UserRightType.Employee_ViewNotizen, Translator.Translate("MitarbeiterSingular") + " Notizen ansehen");
|
||||||
dict.Add(UserRightType.Employee_EditNotizen, Translator.Translate("MitarbeiterSingular") + " Notizen bearbeiten");
|
dict.Add(UserRightType.Employee_EditNotizen, Translator.Translate("MitarbeiterSingular") + " Notizen bearbeiten");
|
||||||
dict.Add(UserRightType.Employee_DeleteNotizen, Translator.Translate("MitarbeiterSingular") + " Notizen löschen");
|
dict.Add(UserRightType.Employee_DeleteNotizen, Translator.Translate("MitarbeiterSingular") + " Notizen löschen");
|
||||||
|
dict.Add(UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry, Translator.Translate("MitarbeiterSingular") + " Abwesenheiten löschen nach Ablauf");
|
||||||
|
|
||||||
dict.Add(UserRightType.OrganisationView_Create, Translator.Translate("Organisationen anlegen"));
|
dict.Add(UserRightType.OrganisationView_Create, Translator.Translate("Organisationen anlegen"));
|
||||||
dict.Add(UserRightType.OrganisationView_Delete, Translator.Translate("Organisationen löschen"));
|
dict.Add(UserRightType.OrganisationView_Delete, Translator.Translate("Organisationen löschen"));
|
||||||
@@ -909,6 +910,7 @@ namespace BS.Shared.Core
|
|||||||
dict.Add(UserRightType.KalenderRessourcentermineAndererAendern, "Termine mit Ressourcen anderer " + Translator.Translate("MitarbeiterPlural") + " ändern");
|
dict.Add(UserRightType.KalenderRessourcentermineAndererAendern, "Termine mit Ressourcen anderer " + Translator.Translate("MitarbeiterPlural") + " ändern");
|
||||||
dict.Add(UserRightType.KalenderInZeiterfassungUebernehmen, Translator.Translate("Termine in Zeiterfassung übernehmen"));
|
dict.Add(UserRightType.KalenderInZeiterfassungUebernehmen, Translator.Translate("Termine in Zeiterfassung übernehmen"));
|
||||||
dict.Add(UserRightType.KalenderInAbwesenheitenUebernehmen, Translator.Translate("Termine in Abwesenheiten übernehmen"));
|
dict.Add(UserRightType.KalenderInAbwesenheitenUebernehmen, Translator.Translate("Termine in Abwesenheiten übernehmen"));
|
||||||
|
dict.Add(UserRightType.KalenderRessourcenDoppeltBuchen, Translator.Translate("Ressourcen doppelt buchen"));
|
||||||
dict.Add(UserRightType.TextbausteineAlleAnsehen, Translator.Translate("Textbausteine ansehen (allgemeine)"));
|
dict.Add(UserRightType.TextbausteineAlleAnsehen, Translator.Translate("Textbausteine ansehen (allgemeine)"));
|
||||||
dict.Add(UserRightType.TextbausteineNurEigeneAnsehen, Translator.Translate("Textbausteine ansehen (eigene)"));
|
dict.Add(UserRightType.TextbausteineNurEigeneAnsehen, Translator.Translate("Textbausteine ansehen (eigene)"));
|
||||||
dict.Add(UserRightType.TextbausteineAlleBearbeiten, Translator.Translate("Textbausteine bearbeiten (allgemeine)"));
|
dict.Add(UserRightType.TextbausteineAlleBearbeiten, Translator.Translate("Textbausteine bearbeiten (allgemeine)"));
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ namespace BS.Shared.DataContracts
|
|||||||
[DataMember]
|
[DataMember]
|
||||||
public string BackgroundColor { get; set; }
|
public string BackgroundColor { get; set; }
|
||||||
|
|
||||||
|
public bool IsInThePast => End.HasValue && End.Value.Date < DateTime.Today;
|
||||||
|
|
||||||
public bool IsAllDay
|
public bool IsAllDay
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|||||||
Reference in New Issue
Block a user