Überarbeitung Mok Session Handling
This commit is contained in:
@@ -33,29 +33,30 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return null;
|
||||
}
|
||||
|
||||
if(((ReportViewerModel)Session[ModelSessionConstants.ReportViewerModelKey])?.Employee is null)
|
||||
|
||||
if (_Model == null)
|
||||
{
|
||||
_Model = new ReportViewerModel { Employee = MobileSessionFacade.LoggedInEmployee, ReportCreator = GetReportCreator() };
|
||||
Session[ModelSessionConstants.ReportViewerModelKey] = _Model;
|
||||
}
|
||||
else
|
||||
{
|
||||
_Model = (ReportViewerModel)Session[ModelSessionConstants.ReportViewerModelKey];
|
||||
_Model = new ReportViewerModel { ReportCreator = GetReportCreator() };
|
||||
InitModel(_Model);
|
||||
InitViewModel();
|
||||
}
|
||||
|
||||
//if (((ReportViewerModel)Session[ModelSessionConstants.ReportViewerModelKey])?.LoggedInEmployee is null)
|
||||
//{
|
||||
// _Model = new ReportViewerModel { ReportCreator = GetReportCreator() };
|
||||
// Session[ModelSessionConstants.ReportViewerModelKey] = _Model;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// _Model = (ReportViewerModel)Session[ModelSessionConstants.ReportViewerModelKey];
|
||||
//}
|
||||
|
||||
return _Model;
|
||||
}
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult ReportViewer()
|
||||
private void InitViewModel()
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
return Logout();
|
||||
}
|
||||
|
||||
Model.Report = null;
|
||||
|
||||
var month = DateTime.Today.Month;
|
||||
@@ -67,27 +68,39 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
|
||||
|
||||
Model.AllEmployees = AbstractModel.HasRightMitarbeiterstundenkontoViewAll
|
||||
? EmployeeService.GetAllActiveEmployeesCompact()
|
||||
: new List<CompactEmployeeDC> { MobileSessionFacade.LoggedInCompactEmployee };
|
||||
Model.AllEmployees = Model.HasRightMitarbeiterstundenkontoViewAll
|
||||
? EmployeeService.GetAllActiveEmployeesCompact()
|
||||
: new List<CompactEmployeeDC> { LoggedInUser.Employee };
|
||||
|
||||
// Alle Teams darf man nur sehen, wenn man das Recht "HasRightMitarbeiterstundenkontoViewAll" hat.
|
||||
// Hat man weder das Recht "HasRightMitarbeiterstundenkontoViewAll" noch "HasRightMitarbeiterstundenkontoViewTeams", sieht man die Teams gar nicht.
|
||||
// Hat man das Recht "HasRightMitarbeiterstundenkontoViewTeams", aber nicht das Recht "HasRightMitarbeiterstundenkontoViewAll", sieht man nur die Teams, deren Teamleiter man ist.
|
||||
|
||||
Model.AllTeams = AbstractModel.HasRightMitarbeiterstundenkontoViewAll
|
||||
? EmployeeService.GetAllActiveCompactTeamsForEmployee(MobileSessionFacade.LoggedInEmployee.EmployeeOid)
|
||||
: EmployeeService.FindLeadingCompactTeamsOfEmployee(MobileSessionFacade.LoggedInCompactEmployee.EmployeeOid);
|
||||
Model.AllTeams = Model.HasRightMitarbeiterstundenkontoViewAll
|
||||
? EmployeeService.GetAllActiveCompactTeamsForEmployee(LoggedInEmployee.EmployeeOid)
|
||||
: EmployeeService.FindLeadingCompactTeamsOfEmployee(LoggedInUser.Employee.EmployeeOid);
|
||||
|
||||
if(false == AbstractModel.HasRightMitarbeiterstundenkontoViewAll || Model.SelectedEmployee is null)
|
||||
if (false == Model.HasRightMitarbeiterstundenkontoViewAll || Model.SelectedEmployeeOid is null)
|
||||
{
|
||||
Model.SelectedEmployee = MobileSessionFacade.LoggedInCompactEmployee;
|
||||
Model.SelectedEmployeeOid = LoggedInUser.Employee.EmployeeOid;
|
||||
}
|
||||
|
||||
if (Model.SelectedEmployeeOid.HasValue)
|
||||
{
|
||||
Model.SelectedEmployee = Model.AllEmployees.FirstOrDefault(employee => employee.EmployeeOid.Equals(Model.SelectedEmployeeOid.Value));
|
||||
}
|
||||
|
||||
if (Model.SelectedTeamOid.HasValue)
|
||||
{
|
||||
Model.SelectedTeam = Model.AllTeams.FirstOrDefault(team => team.TeamOid.Equals(Model.SelectedTeamOid.Value));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Model.ReportTypes = new List<SelectListItem>();
|
||||
|
||||
#if DEBUG
|
||||
if(AbstractModel.HasRightToViewReports)
|
||||
if (Model.HasRightToViewReports)
|
||||
{
|
||||
Model.ReportTypes.Add(new SelectListItem
|
||||
{
|
||||
@@ -100,15 +113,20 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.Queries = QueryService.GetAllQueriesOfType(QueryType.Public);
|
||||
|
||||
if (Model.SelectedQueryOid.HasValue)
|
||||
{
|
||||
Model.SelectedQuery = Model.Queries.FirstOrDefault(q => q.Oid.Equals(Model.SelectedQueryOid.Value));
|
||||
}
|
||||
|
||||
var names2ValueListEntryTypes = new Dictionary<string, ValueListEntryType>();
|
||||
|
||||
foreach(var query in Model.Queries.Where(q => q.Parameter?.Any() ?? false))
|
||||
foreach (var query in Model.Queries.Where(q => q.Parameter?.Any() ?? false))
|
||||
{
|
||||
foreach(var parameter in query.Parameter.Where(p => p.ParamType == QueryParameterType.ValueListEntryType))
|
||||
foreach (var parameter in query.Parameter.Where(p => p.ParamType == QueryParameterType.ValueListEntryType))
|
||||
{
|
||||
var parameterName = parameter.Name;
|
||||
|
||||
if(!(parameterName?.Contains("_") ?? false))
|
||||
if (!(parameterName?.Contains("_") ?? false))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -118,12 +136,12 @@ namespace BeWoPlanerMobil.Controllers
|
||||
var name = name2Type[0];
|
||||
var type = name2Type[1];
|
||||
|
||||
if(!int.TryParse(type, out var typeEnumInt))
|
||||
if (!int.TryParse(type, out var typeEnumInt))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var valueListEntryType = (ValueListEntryType) typeEnumInt;
|
||||
var valueListEntryType = (ValueListEntryType)typeEnumInt;
|
||||
names2ValueListEntryTypes.AddIfNotIn(new KeyValuePair<string, ValueListEntryType>(name, valueListEntryType));
|
||||
}
|
||||
}
|
||||
@@ -135,9 +153,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.ValueListEntryTypes2ValueListEntries.AddOrUpdateValueInDictionary(valueListEntry.Type, valueListEntry);
|
||||
});
|
||||
|
||||
if(Model.Employee?.EmployeeOid.HasValue ?? false)
|
||||
if (Model.LoggedInEmployee?.EmployeeOid.HasValue ?? false)
|
||||
{
|
||||
Model.SupportConcepts = EmployeeService.GetActiveSupportConceptsForEmployee(Model.Employee.EmployeeOid, CustomerFilterEnum.All);
|
||||
Model.SupportConcepts = EmployeeService.GetActiveSupportConceptsForEmployee(Model.LoggedInEmployee.EmployeeOid, CustomerFilterEnum.All);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -146,9 +164,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.SupportConcepts.DoForEach(sc => Model.CostBearer2SupportConceptRels.AddRangeIfElementsNotIn(sc.CostBearerRelations));
|
||||
|
||||
if(Model.SelectedCostBearer2SupportConceptRelListObject is null)
|
||||
if (Model.SelectedCostBearer2SupportConceptRelListObject is null)
|
||||
{
|
||||
Model.SelectedCostBearer2SupportConceptRelListObject = Model.CostBearer2SupportConceptRelListObjects.FirstOrDefault(f => f.CostBearer2SupportConceptOid == "-1") ?? Model.CostBearer2SupportConceptRelListObjects.First();
|
||||
Model.SelectedCostBearer2SupportConceptRelListObject = Model.CostBearer2SupportConceptRelListObjects.FirstOrDefault(f => f.CostBearer2SupportConceptOid == -1) ?? Model.CostBearer2SupportConceptRelListObjects.First();
|
||||
}
|
||||
|
||||
Model.AllOrganisationForQuery = CustomerService.GetAllActiveOrganisationsCompact();
|
||||
@@ -156,12 +174,12 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.AllServiceCategoriesForQueries = OperationsService.GetAllServiceCategories();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
if(AbstractModel.HasRightToViewMitarbeiterstundenkonto)
|
||||
if (Model.HasRightToViewMitarbeiterstundenkonto)
|
||||
{
|
||||
Model.ReportTypes.Add(new SelectListItem
|
||||
{
|
||||
@@ -178,6 +196,18 @@ namespace BeWoPlanerMobil.Controllers
|
||||
#if DEBUG
|
||||
//Model.SelectedReportType = ReportType.Berichte;
|
||||
#endif
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult ReportViewer()
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
return Logout();
|
||||
}
|
||||
|
||||
|
||||
|
||||
return View(Model);
|
||||
}
|
||||
@@ -198,7 +228,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
if(Model?.Employee?.EmployeeOid is null || reportOid is null)
|
||||
if(Model?.LoggedInEmployee?.EmployeeOid is null || reportOid is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
return PartialView("BeWoReportPartial");
|
||||
@@ -216,7 +246,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.SelectedQuery = selectedQuery;
|
||||
|
||||
var dcid = $"{MobileSessionFacade.Tenant}queryeoid{Model.Employee.EmployeeOid.Value}";
|
||||
var dcid = $"{MobileSessionFacade.Tenant}queryeoid{Model.LoggedInEmployee.EmployeeOid.Value}";
|
||||
|
||||
var queryResult = QueryService.ExecuteQuery(selectedQuery.Oid, null);
|
||||
|
||||
@@ -249,7 +279,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
if(Model?.Employee?.EmployeeOid is null || reportOid is null)
|
||||
if(Model?.LoggedInEmployee?.EmployeeOid is null || reportOid is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
return PartialView("BerichteFormPartialView");
|
||||
@@ -318,7 +348,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
private string GetSiteOfOrigin()
|
||||
{
|
||||
if(Model?.Employee?.EmployeeOid is null)
|
||||
if(Model?.LoggedInEmployee?.EmployeeOid is null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@@ -361,6 +391,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
Model.SelectedEmployeeOid = employeeOid;
|
||||
Model.SelectedEmployee = Model.AllEmployees.FirstOrDefault(employee => employee.EmployeeOid.Equals(employeeOid.Value));
|
||||
|
||||
return Model.SelectedEmployee?.DetailDescription ?? LeerzeichenFuerGetMethoden;
|
||||
@@ -381,6 +412,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
Model.SelectedTeamOid = teamOid;
|
||||
Model.SelectedTeam = Model.AllTeams.FirstOrDefault(team => team.TeamOid.Equals(teamOid.Value));
|
||||
|
||||
return Model.SelectedTeam?.DetailDescription ?? LeerzeichenFuerGetMethoden;
|
||||
@@ -389,7 +421,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
[Authorize]
|
||||
public ActionResult LoadMitarbeiterstundenkonto(int ansicht, int month, int year, bool all, bool isEmployee)
|
||||
{
|
||||
if(Model?.Employee?.EmployeeOid is null)
|
||||
if(Model?.LoggedInEmployee?.EmployeeOid is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
return PartialView("BeWoReportPartial");
|
||||
@@ -397,13 +429,14 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var teamOids = new List<long>();
|
||||
var employeeOid = Model.SelectedEmployeeOid;
|
||||
var oid = isEmployee ? employeeOid ?? Model.Employee.EmployeeOid.Value : Model.SelectedTeamOid;
|
||||
var oid = isEmployee ? employeeOid ?? Model.LoggedInEmployee.EmployeeOid.Value : Model.SelectedTeamOid;
|
||||
|
||||
if(isEmployee)
|
||||
{
|
||||
teamOids = null;
|
||||
employeeOid = oid;
|
||||
|
||||
if(all || false == AbstractModel.HasRightMitarbeiterstundenkontoViewAll)
|
||||
if(all || false == Model.HasRightMitarbeiterstundenkontoViewAll)
|
||||
{
|
||||
employeeOid = null;
|
||||
}
|
||||
@@ -413,16 +446,18 @@ namespace BeWoPlanerMobil.Controllers
|
||||
employeeOid = oid;
|
||||
}
|
||||
|
||||
if(false == AbstractModel.HasRightMitarbeiterstundenkontoViewAll)
|
||||
if(false == Model.HasRightMitarbeiterstundenkontoViewAll)
|
||||
{
|
||||
employeeOid = Model.Employee.EmployeeOid;
|
||||
employeeOid = Model.LoggedInEmployee.EmployeeOid;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
employeeOid = null;
|
||||
|
||||
var teamOid = oid;
|
||||
|
||||
if(all || (!AbstractModel.HasRightMitarbeiterstundenkontoViewAll && !AbstractModel.HasRightMitarbeiterstundenkontoViewTeams))
|
||||
if(all || (!Model.HasRightMitarbeiterstundenkontoViewAll && !Model.HasRightMitarbeiterstundenkontoViewTeams))
|
||||
{
|
||||
teamOid = null;
|
||||
}
|
||||
@@ -723,7 +758,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
[Authorize]
|
||||
public ActionResult ExecuteQuery()
|
||||
{
|
||||
if(Model?.Employee?.EmployeeOid is null)
|
||||
if(Model?.LoggedInEmployee?.EmployeeOid is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
|
||||
@@ -748,7 +783,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
var dcid = $"{MobileSessionFacade.Tenant}queryeoid{Model.Employee.EmployeeOid.Value}";
|
||||
var dcid = $"{MobileSessionFacade.Tenant}queryeoid{Model.LoggedInEmployee.EmployeeOid.Value}";
|
||||
|
||||
var queryResult = QueryService.ExecuteQuery(query.Oid, paramList);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user