[Route("DonVi/HoatDong/{donViId}")] //Xem hoặc quản lý hoạt động lớp (với người có quyền) public ActionResult HoatDongDonVi(int donViId) { var donVi = _context.DanhSachDonVi.Include(dv => dv.ChucVuDonVi).SingleOrDefault(dv => dv.Id == donViId); if (donVi == null) { ViewBag.Message = "Yêu cầu không hợp lệ"; return(View("Error")); } var quanLyDonViViewModel = new QuanLyDonViViewModel(donVi); //Nếu không đăng nhập if (!User.Identity.IsAuthenticated) { return(View("HoatDongDonVi", quanLyDonViViewModel)); } //Nếu có đăng nhập var userSinhVienId = User.Identity.GetSinhVienId(); var quyenQuanLyThanhVien = donVi.ChucVuDonVi.Any(cv => cv.DonViId == donViId && cv.SinhVienId == userSinhVienId && (cv.ChucVuId == 10 || cv.QuanLyHoatDong)); return(quyenQuanLyThanhVien || User.IsInRole("Admin") || User.IsInRole("QuanLyDonVi") ? View("HoatDongDonVi_QuanLy", quanLyDonViViewModel) : View("HoatDongDonVi", quanLyDonViViewModel)); }
[Route("DonVi/QuanLyThanhVien/{donViId}")] //Quản lý sinh viên lớp public ActionResult QuanLyThanhVien(int donViId) { var userSinhVienId = User.Identity.GetSinhVienId(); var quyenQuanLyThanhVien = _context.DanhSachChucVuDonVi.Any(cv => cv.DonViId == donViId && cv.SinhVienId == userSinhVienId && (cv.ChucVuId == 10 || cv.QuanLyThanhVien)); if (quyenQuanLyThanhVien || User.IsInRole("Admin") || User.IsInRole("QuanLyDonVi")) { var donVi = _context.DanhSachDonVi.SingleOrDefault(dv => dv.Id == donViId); var quanLyDonViViewModel = new QuanLyDonViViewModel(donVi); return(View(quanLyDonViViewModel)); } ViewBag.Message = "Bạn không quyền truy cập trang này."; return(View("Error")); }
public ActionResult ThongTinDonVi(int donViId) { var donVi = _context.DanhSachDonVi.SingleOrDefault(dv => dv.Id == donViId); var quanLyDonViViewModel = new QuanLyDonViViewModel(donVi); //Nếu không đăng nhập if (!User.Identity.IsAuthenticated) { return(View(quanLyDonViViewModel)); } //Nếu có đăng nhập và có chức vụ if (User.IsInRole("Admin") || User.IsInRole("QuanLyDonVi")) { quanLyDonViViewModel.SetQuyenCaoNhat(); return(View("QuanLyDonVi", quanLyDonViViewModel)); } //Nếu có đăng nhập nhưng không có chức vụ admin var userSinhVienId = User.Identity.GetSinhVienId(); var thanhVien = _context.DanhSachThanhVienDonVi .Include(tv => tv.DanhSachChucVuDonVi) .SingleOrDefault(cv => cv.DonViId == donViId && cv.SinhVienId == userSinhVienId); //Nếu không là thành viên if (thanhVien == null) { return(View(quanLyDonViViewModel)); } //Nếu chỉ mới đăng kí if (!thanhVien.DuocPheDuyet) { quanLyDonViViewModel.SetMoiDangKi(); return(View(quanLyDonViViewModel)); } quanLyDonViViewModel.SetLaThanhVienChinhThuc(); //Nếu không có chức vụ dơn vị if (thanhVien.DanhSachChucVuDonVi.Count == 0) { return(View(quanLyDonViViewModel)); } //Nếu có chức vụ đơn vị if (thanhVien.DanhSachChucVuDonVi.Any(cvl => cvl.ChucVuId == 10) || User.IsInRole("Admin") || User.IsInRole("QuanLyDonVi")) { quanLyDonViViewModel.SetQuyenCaoNhat(); return(View("QuanLyDonVi", quanLyDonViViewModel)); } if (thanhVien.DanhSachChucVuDonVi.Any(cv => cv.QuanLyChucVu)) { quanLyDonViViewModel.SetQuyenQuanLyChucVu(); } if (thanhVien.DanhSachChucVuDonVi.Any(cv => cv.QuanLyHoatDong)) { quanLyDonViViewModel.SetQuanLyHoatDong(); } if (thanhVien.DanhSachChucVuDonVi.Any(cv => cv.QuanLyThongTin)) { quanLyDonViViewModel.SetQuanLyThongTin(); } if (thanhVien.DanhSachChucVuDonVi.Any(cv => cv.QuanLyThanhVien)) { quanLyDonViViewModel.SetQuanLyThanhVien(); } return(View("QuanLyDonVi", quanLyDonViViewModel)); }