public ActionResult TriggerRandomException() { if (AnsattHelper.IsUserSuper(GetUsername())) { var rand = new Random().Next(4); switch (rand) { case 0: throw new NotImplementedException("Ikke implementert"); case 1: { string kc = null; kc += kc.ToString(); break; } case 2: throw new DivideByZeroException("Du kan ikke dele på 0! You crazy!"); case 3: var z = "nope".Substring(3, 3); break; } return(View(null + string.Empty)); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult DeleteSuperUser(string AD) { if (AnsattHelper.IsUserSuper(GetUsername())) { if (AD != null) { if (GetUsername().ToUpper().Equals(AD.ToUpper())) { ViewBag.ErrorMsgGlobal = "Feil: Du kan ikke fjerne din egen superbrukertilgang"; } else { var result = AnsattHelper.DeleteSuperUser(AD); if (result.Success) { ViewBag.StatusMsgGlobal = result.Message; } else { ViewBag.ErrorMsgGlobal = result.Message; } } } else { ViewBag.ErrorMsgGlobal = "Feil: Ugyldig parameter oppgitt. Prøv på nytt senere"; } return(View("SuperBrukere")); } else { return(new HttpUnauthorizedResult()); } }
private Response <bool> IsLoggedInUserEntitled(Bundles.AnsattInfo ansattInfo) { var loggedInUser = GetLoggedInUserAD(); if (AnsattHelper.IsUserSuper(loggedInUser)) { return(new Response <bool>(true, "User is testAdmin", Codes.Code.OK)); } Bundles.LederInfo[] lederListe = ansattInfo.Lederliste; // sjekk om det ble funnet ledere i AD, hvis ikke hent fra HRM if (lederListe == null || lederListe.Length <= 0) { var lederResponse = HRMHelper.FinnLedereForAnsatt(ansattInfo.Fornavn, ansattInfo.Etternavn, ansattInfo.AnsattNr); if (lederResponse.Success) { lederListe = lederResponse.Get(); } } // sjekk om innlogget bruker står som leder for den ansatte foreach (var leder in lederListe) { if (leder.AD.ToUpper().Equals(loggedInUser)) { return(new Response <bool>(true, "OK", Codes.Code.OK)); } } // sjekk om innlogget bruker er leders leder foreach (var leder in lederListe) { var lederResult = ADHelper.GetAnsattInfoForLeder(leder.AD); if (lederResult.Success) { var ledersLedere = HRMHelper.FinnLedereForAnsatt(lederResult.Get()); if (ledersLedere.Success) { foreach (var ledersLeder in ledersLedere.Get()) { if (ledersLeder.AD.ToUpper().Equals(loggedInUser)) { return(new Response <bool>(true, "OK", Codes.Code.OK)); } } } } else { return(new Response <bool>(false, lederResult.Message, Codes.Code.ERROR)); } } return(new Response <bool>(false, "Du står ikke som leder for denne ansatte", Codes.Code.ERROR)); }
public ActionResult Raadmenn() { if (AnsattHelper.IsUserSuper(GetUsername())) { ViewBag.HelpLink = HelpLinks.RaadmennTilgang; return(View()); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult SuperBrukere() { if (AnsattHelper.IsUserSuper(GetUsername())) { ViewBag.HelpLink = HelpLinks.SuperBrukere; return(View()); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult ResetEsignPoll() { if (AnsattHelper.IsUserSuper(GetUsername())) { //var result = ESignPoller.Init(); //ViewBag.StatusMsgGlobal = result.Message; return(View("Index")); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult StartESignPoll() { if (AnsattHelper.IsUserSuper(GetUsername())) { ESignPollerNew.PollForChange(); ViewBag.StatusMsgGlobal = "Kjører PollForChange()..."; return(View("Index")); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult ViewLog() { if (AnsattHelper.IsUserSuper(GetUsername())) { var dokument = RouteData.Values["docID"]; return(View()); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult IdentifiserAnsatt() { // vis innlogget bruker i headeren var dokument = RouteData.Values["docID"]; if (dokument == null) { dokument = Session["docID"]; } ViewBag.Message = $"Logget inn som {User.Identity.Name}"; ViewBag.ErrorMsgGlobal = TempData["ErrorMsgGlobal"]; ViewBag.ErrorMsg = TempData["errorMsg"]; ViewBag.StatusCode = TempData["statusCode"]; ViewBag.Ansattnr = TempData["ansattNr"]; if (dokument.Equals("Sykefraværsmappe")) { ViewBag.TitleHint = "Identifisering av ansatt"; ViewBag.MainHint = "Vennligst identifiser den ansatte for å dokumentere sykefravær..."; ViewBag.CanSkip = false; } else { ViewBag.TitleHint = "Identifisering av ansatt"; ViewBag.MainHint = "Vennligst identifiser den ansatte for å laste opp dokumenter..."; ViewBag.CanSkip = true; } ViewBag.DocID = dokument; Session["docID"] = dokument; var isUserSuper = AnsattHelper.IsUserSuper(GetLoggedInUserAD()); ViewBag.CanSeeTestUsers = isUserSuper; if (isUserSuper) { ViewBag.TestUsers = AnsattHelper.Testbrukere; } ViewBag.HelpLink = HelpLinks.Startside; return(View()); }
private ActionResult Success(Bundles.AnsattInfo ansatt) { // --------------- var isUserSuper = AnsattHelper.IsUserSuper(GetLoggedInUserAD()); ViewBag.CanSeeTestUsers = isUserSuper; if (isUserSuper) { ViewBag.TestUsers = AnsattHelper.Testbrukere; } // -------------------- ViewBag.HelpLink = HelpLinks.Startside; ViewBag.Ansattnavn = ansatt.Navn; ViewBag.Ansattnr = ansatt.AnsattNr; Session["ansatt"] = ansatt; return(View("VelgDokument")); }
public ActionResult DeleteRaadmann(string ad) { if (AnsattHelper.IsUserSuper(GetUsername())) { var result = AnsattHelper.DeleteRaadmann(ad); if (result.Success) { ViewBag.StatusMsgGlobal = result.Message; } else { ViewBag.ErrorMsgGlobal = result.Message; } return(View("Raadmenn")); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult AddSuperUser(string ADbrukernavn) { if (AnsattHelper.IsUserSuper(GetUsername())) { var result = AnsattHelper.AddSuperUser(ADbrukernavn); if (result.Success) { ViewBag.StatusMsgGlobal = result.Message; } else { ViewBag.ErrorMsgGlobal = result.Message; } return(View("SuperBrukere")); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult CreateTestUser(string id, string fornavn, string etternavn) { if (AnsattHelper.IsUserSuper(GetUsername())) { var result = AnsattHelper.AddTestUser(id, fornavn, etternavn); if (result.Success) { ViewBag.StatusMsgGlobal = result.Message; } else { ViewBag.ErrorMsgGlobal = result.Message; } return(View("TestBrukere")); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult UpdateSuperUsers(bool[] updateADBruker) { if (AnsattHelper.IsUserSuper(GetUsername())) { if (updateADBruker.Length == AnsattHelper.Superbrukere.Count) { for (int i = 0; i < updateADBruker.Length; i++) { var nb = AnsattHelper.Superbrukere[i]; if (nb.MottaFeilmeldinger != updateADBruker[i]) { nb.MottaFeilmeldinger = updateADBruker[i]; var result = AnsattHelper.ModifySuperUser(nb); if (!result.Success) { ViewBag.ErrorMsgGlobal = result.Message; return(View("SuperBrukere")); } } } ViewBag.StatusMsgGlobal = "Superbrukere oppdatert!"; } else { ViewBag.ErrorMsgGlobal = "En feil har oppstått: feil med antall superbrukere kontra mottat data fra post"; return(View("SuperBrukere")); } return(View("SuperBrukere")); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult StatusLogger() { if (AnsattHelper.IsUserRaadmann(GetUsername())) { StatHelper.Init(); var data = StatHelper.GetData(); //var sykefraværData = data.Where(l => l.Type == Mappetype.Sykefravær); var ansattforholdData = data.Where(l => l.Type == Mappetype.Ansattforhold); var currentDayList = StatHelper.GetUploadsToday(); ViewBag.CurrentDayCount = currentDayList.Count(); ViewBag.SykefraværCount = currentDayList.Where(l => l.Type == Mappetype.Sykefravær).Count(); ViewBag.AnsattforholdCount = currentDayList.Where(l => l.Type == Mappetype.Ansattforhold).Count(); var varselDataResult = StatHelper.GetVarselLogg(); var uploadDataResult = StatHelper.GetOppfølginger(); if (varselDataResult.Success && uploadDataResult.Success) { var varselData = varselDataResult.Get(); var uploadData = uploadDataResult.Get(); ViewBag.Dag5Count = varselData.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(5))).Count(); ViewBag.Dag14Count = varselData.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(14))).Count(); ViewBag.Dag28Count = varselData.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(28))).Count(); ViewBag.DateMod = varselDataResult.Message; ViewBag.TodayCount = varselData.Where(v => v.Date.Equals(DateTime.Now.ToString("dd.MM.yyy"))).Count(); // tell opp sendte varsler pr. dag for å tegne graf var currentDate = DateTime.Now; var jsVarselArray = "["; // lag en array som javascript can bruke var jsUploadArray = "["; for (int i = 0; i < 28; i++) { jsVarselArray += varselData.Where(v => v.Date.Equals(currentDate.AddDays(-i).ToString("dd.MM.yyy"))).Count() + ", "; jsUploadArray += uploadData.Where(l => l.Date.Equals(currentDate.AddDays(-i).ToString("dd.MM.yyy"))).Count() + ", "; } var ledere = varselData.GroupBy(v => v.User).Select(grp => grp.ToList()).ToList(); // tell opp antall utførte/aktive varsler pr nærmeste leder var lederVarsler = new List <VarselLeder>(); foreach (var grpLeder in ledere) { var currentLederList = varselData.Where(v => v.User.Equals(grpLeder.First().User)); var d5 = currentLederList.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(5))); var d14 = currentLederList.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(14))); var d28 = currentLederList.Where(v => v.Name.Equals(StringConstants.Varsel.GetVarsel(28))); var utførtD5 = d5.Where(v => v.Status.Equals("Utført")); var utførtD14 = d14.Where(v => v.Status.Equals("Utført")); var utførtD28 = d28.Where(v => v.Status.Equals("Utført")); var vl = new VarselLeder(grpLeder.First().User, $"{utførtD5.Count()}/{d5.Count()}", $"{utførtD14.Count()}/{d14.Count()}", $"{utførtD28.Count()}/{d28.Count()}"); // regn ut % utført av alle varsler double su = utførtD5.Count() + utførtD14.Count() + utførtD28.Count(); double st = d5.Count() + d14.Count() + d28.Count(); if (st > 0) { var pc = su / st; vl.PS = Math.Round(pc * 100); } lederVarsler.Add(vl); } jsVarselArray += "]"; jsUploadArray += "]"; ViewBag.VarselArray = jsVarselArray; ViewBag.UploadArray = jsUploadArray; ViewBag.LederVarsler = lederVarsler; } else if (!varselDataResult.Success) { ViewBag.msgVarselFeil = varselDataResult.Message; } else { ViewBag.msgVarselFeil = uploadDataResult.Message; } ViewBag.HelpLink = HelpLinks.StatusLogger; return(View()); } else { return(new HttpUnauthorizedResult()); } }
public ActionResult VelgDokument(string identifikator) { ViewBag.Message = $"Logget inn som {User.Identity.Name}"; Response <Bundles.AnsattInfo> ansattResponse; ViewBag.DocID = Session["docID"]; if (identifikator.Equals("-1")) { ViewBag.Ansattnr = identifikator; ansattResponse = new Response <Bundles.AnsattInfo>(Bundles.AnsattInfo.Skipped, null, Codes.Code.OK); return(Success(ansattResponse.Get())); } else if (identifikator.StartsWith("!") && AnsattHelper.IsUserSuper(GetLoggedInUserAD())) { // testbrukere var ansattnr = identifikator.Substring(1, identifikator.Length - 1); ansattResponse = AnsattHelper.GetTestUser(ansattnr, GetLoggedInUserAD()); ViewBag.Ansattnr = ansattnr; } else if (identifikator.Contains("@")) // anta e-postadresse { ansattResponse = ADHelper.GetADBrukerForEpost(identifikator); } else if (long.TryParse(identifikator, out long idNummer)) // et nummer - altså ansattnr. eller personnr. { if (idNummer > 99999) { ansattResponse = HRMHelper.FinnAnsatt(identifikator); } else { ansattResponse = ADHelper.GetADBruker((int)idNummer); } } else { return(Failure(Codes.Code.ERROR, $"Ugyldig identifikator oppgitt: '{identifikator}'")); } if (ansattResponse.Success) { var ansatt = ansattResponse.Get(); var authResult = IsLoggedInUserEntitled(ansatt); if (authResult.Get()) { return(Success(ansatt)); } else { // Gjør oppslag i HRM for å finne alle ledere for denne ansatte var lederResponse = HRMHelper.FinnLedereForAnsatt(ansatt.Fornavn, ansatt.Etternavn, ansatt.AnsattNr); if (lederResponse.Success) { ansatt.Lederliste = lederResponse.Get(); authResult = IsLoggedInUserEntitled(ansatt); if (authResult.Success) { if (authResult.Get()) { return(Success(ansatt)); } else { return(Failure(authResult.Code, authResult.Message)); } } else { return(Failure(authResult.Code, authResult.Message)); } } else { return(Failure(authResult.Code, authResult.Message)); } } } else { return(Failure(ansattResponse.Code, ansattResponse.Message)); } }