protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); INhanVienRepository nhanVienRepository = uow.Repository <NhanVienRepository>(); IPhongBanRepository phongBanRepository = uow.Repository <PhongBanRepository>(); var role = EUserRole.Admin; // load nhanVien for LoggedInUser nhanVien = nhanVienRepository.GetByID(LoggedInUser.NhanvienID ?? 0); if (nhanVien != null) { phongBan = phongBanRepository.GetSingle(m => m.PhongbanID == nhanVien.PhongbanID); if (phongBan != null) { var tenPhongBan = phongBan.Ten.ToLower(); if (tenPhongBan.Contains("kinh")) { role = EUserRole.KinhDoanh; } else if (tenPhongBan.ToLower().Contains("in") || tenPhongBan.ToLower().Contains("kế toán")) { role = EUserRole.InHoaDon; } else // add more role here { role = EUserRole.ThuNgan; } } } // cache role RequestScope.UserRole = role; }