public ActionResult Create() { string text = db.SscisParam.Where(p => p.ParamKey.Equals(SSCISParameters.CHCIPOMAHATHTML)).Single().ParamValue; ViewBag.TextHelp = WebUtility.HtmlDecode(text); if (HttpContext.Session.GetString("role") == null) { return(View("Create_public")); } int userID = (int)HttpContext.Session.GetInt32("userId"); if (db.TutorApplication.Where(a => a.IdUser == userID && a.IsAccepted == null).Count() > 0) { return(RedirectToAction("ApplicationPending")); } int countOfSubjects = db.EnumSubject.Count(s => s.IdParent != null && s.Lesson == true); MetaTutorApplication model = new MetaTutorApplication(countOfSubjects); SscisUser user = db.SscisUser.Find(userID); model.Application.IdUserNavigation = user; ViewBag.SubjectID = new SelectList(db.EnumSubject.Where(s => s.Lesson != null && s.Lesson.Value).ToList(), "Id", "Code"); ViewBag.AcceptedByID = new SelectList(db.SscisUser, "Id", "Login"); ViewBag.UserID = new SelectList(db.SscisUser, "Id", "Login"); ViewBag.Degree = new SelectList(ApplicationDegrees.Degrees); return(View(model)); }
public ActionResult Details(int?id) { if (id == null) { return(new StatusCodeResult((int)HttpStatusCode.BadRequest)); } SscisUser sSCISUser = db.SscisUser.Find(id); if (sSCISUser == null) { return(NotFound()); } return(View(sSCISUser)); }
/// <summary> /// SSO Authentification /// https://proxyauth.zcu.cz/testauth /// </summary> /// <returns>HomePage</returns> public ActionResult Index() { //Main proxy https://proxyauth.zcu.cz/testauth/ //Backup https://fkmagion.zcu.cz/testauth/ //Zajistit na entry se dostat jenom z proxyauth.zcu.cz (147.228.4.80) var PROXY_IP = "147.228.4.80"; var headerValue = Request.Headers[WEB_AUTH_USER]; var ip = HttpContext.Connection.RemoteIpAddress.ToString(); if (headerValue.Any() == false || ip != PROXY_IP) { return(RedirectToAction("Info", "Entry")); } string username = Request.Headers[USERNAME_KEY]; string firstName = Request.Headers[FIRST_NAME]; string secondName = Request.Headers[SECOND_NAME]; string email = Request.Headers[EMAIL_KEY].ToString(); //find user if already in database var count = db.SscisUser.Count(usr => usr.Login.Equals(username, StringComparison.OrdinalIgnoreCase)); if (count < 1) { SscisUser user = new SscisUser(); user.Created = DateTime.Now; user.Activated = DateTime.Now; user.Login = username; user.IsActive = true; user.Email = email; user.IdRoleNavigation = db.EnumRole.Where(r => r.Role.Equals(AuthorizationRoles.User, StringComparison.OrdinalIgnoreCase)).Single(); user.Firstname = firstName; user.Lastname = secondName; db.SscisUser.Add(user); db.SaveChanges(); } //start session int sessionId = new SSCISSessionManager().SessionStart(username, HttpContext); ViewBag.SessionId = sessionId; SscisSession session = db.SscisSession.Find(sessionId); ViewBag.RedirectUrl = HttpContext.Request.Query["redirect"].ToString(); ViewBag.UserId = session.IdUser; ViewBag.Hash = session.Hash; ViewBag.Role = session.IdUserNavigation.IdRoleNavigation.Role; ViewBag.Login = session.IdUserNavigation.Login; return(View("Logged")); }
public ActionResult Profil() { int?id = (int)HttpContext.Session.GetInt32("userId"); if (id == null) { return(new StatusCodeResult((int)HttpStatusCode.BadRequest)); } SscisUser sSCISUser = db.SscisUser.Find(id); if (sSCISUser == null) { return(NotFound()); } return(View("Details", sSCISUser)); }
public ActionResult Edit(int?id) { if (id == null) { return(new StatusCodeResult((int)HttpStatusCode.BadRequest)); } SscisUser sSCISUser = db.SscisUser.Find(id); if (sSCISUser == null) { return(NotFound()); } ViewBag.IdRole = new SelectList(db.EnumRole, "Id", "Role", sSCISUser.IdRole); ViewBag.ActivatedByID = new SelectList(db.SscisUser, "Id", "Login", sSCISUser.IsActivatedBy); List <Approval> approvals = db.Approval.Where(a => a.IdTutor == sSCISUser.Id).ToList(); List <EnumSubject> subjects = db.EnumSubject.Where(s => s.IdParent == null && s.Lesson == false).ToList(); EditUser editUser = new EditUser(); editUser.User = sSCISUser; editUser.Roles = db.EnumRole.ToList(); List <MetaApproval> metaApprovals = new List <MetaApproval>(); foreach (EnumSubject enumSubject in subjects) { MetaApproval metaApproval = new MetaApproval(); foreach (Approval approval in approvals) { if (approval.IdSubject == enumSubject.Id) { metaApproval.EnumSubject = enumSubject; metaApproval.Approved = true; } } if (metaApproval.EnumSubject == null) { metaApproval.EnumSubject = enumSubject; metaApproval.Approved = false; } metaApprovals.Add(metaApproval); } editUser.Approvals = metaApprovals; return(View(editUser)); }
public ActionResult DeleteConfirmed(int id) { int authorID = (int)HttpContext.Session.GetInt32("userId"); SscisUser currentLoggedUser = db.SscisUser.Find((int)authorID); SscisUser sSCISUser = db.SscisUser.Find(id); try { //remove sessions db.SscisSession.RemoveRange(db.SscisSession.Where(s => s.IdUser == id)); //remove approvals db.Approval.RemoveRange(db.Approval.Where(s => s.IdTutor == id)); //edit news, dont want to delete them List <SscisContent> userContent = db.SscisContent.Where(a => a.IdAuthor == id || a.IdEditedBy == id).ToList(); foreach (SscisContent content in userContent) { if (content.IdAuthor == id) { content.IdAuthorNavigation = currentLoggedUser; } if (content.IdEditedBy == id) { content.IdEditedByNavigation = currentLoggedUser; } } //edit feedbacks if inserted nonanonymous List <Participation> userParticipation = db.Participation.Where(a => a.IdUser == id).ToList(); foreach (Participation participation in userParticipation) { participation.IdUserNavigation = null; } //set user events to cancelled List <Event> userEvent = db.Event.Where(a => a.IdTutor == id || a.IdApplicant == id).ToList(); foreach (Event sscisEvent in userEvent) { if (sscisEvent.IdTutor == id) { sscisEvent.IdTutorNavigation = currentLoggedUser; sscisEvent.CancelationComment = "Tutor fired!"; } if (sscisEvent.IdApplicant == id) { sscisEvent.CancelationComment = "ToS violation!"; sscisEvent.IdApplicantNavigation = null; } sscisEvent.IsCancelled = true; } //delete tutor applications List <TutorApplication> userAplication = db.TutorApplication.Where(a => a.IdUser == id).ToList(); foreach (TutorApplication tutorApplication in userAplication) { db.TutorApplicationSubject.RemoveRange(db.TutorApplicationSubject.Where(a => a.IdApplication == tutorApplication.Id)); db.TutorApplication.Remove(tutorApplication); } db.SscisUser.Remove(sSCISUser); db.SaveChanges(); return(RedirectToAction("Index")); } catch (Exception) { return(View("DeleteFailed")); } }
public ActionResult Edit(EditUser editUser) { if (ModelState.IsValid) { editUser.User.IdRoleNavigation = db.EnumRole.Find(editUser.User.IdRole); db.Entry(editUser.User).State = EntityState.Modified; if (editUser.User.IdRoleNavigation.Role.Equals("USER")) { List <Approval> userApproval = db.Approval.Where(a => a.IdTutor == editUser.User.Id).ToList(); foreach (Approval approval in userApproval) { db.Approval.Remove(approval); } List <Event> userEvent = db.Event.Where(a => a.IdTutor == editUser.User.Id).ToList(); foreach (Event sscisEvent in userEvent) { int authorID = (int)HttpContext.Session.GetInt32("userId"); SscisUser currentLoggedUser = db.SscisUser.Find((int)authorID); sscisEvent.IdTutorNavigation = currentLoggedUser; sscisEvent.CancelationComment = "Tutor fired!"; sscisEvent.IsCancelled = true; } } else if (editUser.User.IdRoleNavigation.Role.Equals("ADMIN")) { List <Approval> userApproval = db.Approval.Where(a => a.IdTutor == editUser.User.Id).ToList(); foreach (Approval approval in userApproval) { db.Approval.Remove(approval); } List <EnumSubject> subjects = db.EnumSubject.Where(s => s.IdParent == null && s.Lesson == false).ToList(); foreach (EnumSubject subject in subjects) { Approval newApproval = new Approval(); newApproval.IdSubject = subject.Id; newApproval.IdSubjectNavigation = db.EnumSubject.Find(subject.Id); newApproval.IdTutor = editUser.User.Id; newApproval.IdTutorNavigation = db.SscisUser.Find(editUser.User.Id); db.Approval.Add(newApproval); db.SaveChanges(); } } else { foreach (MetaApproval app in editUser.Approvals) { if (app.Approved == true) { List <Approval> tmp = db.Approval.Where(a => a.IdTutor == editUser.User.Id && a.IdSubject == app.EnumSubject.Id).ToList(); if (tmp.Count == 0) { Approval newApproval = new Approval(); newApproval.IdSubject = app.EnumSubject.Id; newApproval.IdSubjectNavigation = db.EnumSubject.Find(app.EnumSubject.Id); newApproval.IdTutor = editUser.User.Id; newApproval.IdTutorNavigation = db.SscisUser.Find(editUser.User.Id); db.Approval.Add(newApproval); db.SaveChanges(); } } else { List <Approval> tmp = db.Approval.Where(a => a.IdTutor == editUser.User.Id && a.IdSubject == app.EnumSubject.Id).ToList(); foreach (Approval app2 in tmp) { db.Approval.Remove(app2); } } } } editUser.Approvals = null; db.Entry(editUser.User).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.RoleID = new SelectList(db.EnumRole, "Id", "Role", editUser.User.IdRole); ViewBag.ActivatedByID = new SelectList(db.SscisUser, "Id", "Login", editUser.User.IsActivatedBy); return(View(editUser.User)); }