/// <summary> /// [Hien.Nguyen] /// </summary> /// <param name="userID"></param> /// <returns></returns> public TempPermissionModel Put(PermissionModel userID) { var service = new SecurityService(); TempPermissionModel result = new TempPermissionModel(); result.Data = service.GetAllPermission(userID.UserID); return result; }
/// <summary> Check Permission </summary> /// <param name="permissionModel"></param> /// <returns></returns> public PermissionModel Post(PermissionModel permissionModel) { var service = new SecurityService(); bool result = false; if (permissionModel != null ) { result = service.CheckPermission(permissionModel.UserID, permissionModel.PrivilegeType, permissionModel.Permission); } return new PermissionModel() { IsAllowAccess = result }; }
public ActionResult GetPermissionForGeneralProfile() { Guid userId = Guid.Empty; if (Session[SessionObjects.UserId] != null) { if (Session[SessionObjects.UserId].ToString() != Common.UserNameSystem) { userId = (Guid)Session[SessionObjects.UserId]; } else { return Json(new List<string>()); } } PermissionModel permission = new PermissionModel(); //do không truyền kiểu string lên được nên mượn model có guid để truyền lên api permission.UserID = userId; TempPermissionModel result = new TempPermissionModel(); var service = new RestServiceClient<TempPermissionModel>(UserLogin); if (HttpContext.Cache[SessionObjects.Permission + userId] == null) { service.SetCookies(this.Request.Cookies, _hrm_Sys_Service); result = service.Put(_hrm_Sys_Service, "api/SysPermission/", permission); //lưu cache quyền của user HttpContext.Cache[SessionObjects.Permission + userId] = result; } else { result = (TempPermissionModel)HttpContext.Cache[SessionObjects.Permission + userId]; } return Json(result.Data); }
public ActionResult LoadMenu() { //try //{ #region Load Menu var siteMap = new HRM.Presentation.UI.Controls.Menu.XmlSiteMap(); if (HttpContext.Cache["SiteMap"] == null) { var serviceMaster = new RestServiceClient<List<Rep_MasterModel>>(UserLogin); serviceMaster.SetCookies(this.Request.Cookies, _hrm_Sys_Service); siteMap.LoadFrom("~/Mvc.sitemap"); var listMaster = serviceMaster.Get(_hrm_Sys_Service, "api/Rep_Control/", Guid.NewGuid()); UI.Controls.Menu.SiteMapNode _tmp; if (listMaster != null && listMaster.Count > 0) { foreach (var i in siteMap.RootNode.ChildNodes) { if (i.ChildNodes.Count > 0) { switch (i.HrmWebSite) { case "Hrm_Rec_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Recruitment, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Eva_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Evaluation, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Main_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.HR, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Att_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Attendance, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Sal_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Salary, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Can_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Canteen, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Lau_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Laundry, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Cat_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Category, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Ins_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Insurance, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Sys_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.System, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; default: break; } } } } HttpContext.Cache["SiteMap"] = siteMap; } else { siteMap = (HRM.Presentation.UI.Controls.Menu.XmlSiteMap)HttpContext.Cache["SiteMap"]; } #endregion #region Load Permission TempPermissionModel result = new TempPermissionModel(); Guid userId = Guid.Empty; if (Session[SessionObjects.UserId] != null) { if (Session[SessionObjects.UserId].ToString() != Common.UserNameSystem) { userId = (Guid)Session[SessionObjects.UserId]; } else { return View(new List<string>()); } } PermissionModel permission = new PermissionModel(); //do không truyền kiểu string lên được nên mượn model có guid để truyền lên api permission.UserID = userId; var service = new RestServiceClient<TempPermissionModel>(UserLogin); if (HttpContext.Cache[SessionObjects.Permission + userId] == null) { service.SetCookies(this.Request.Cookies, _hrm_Sys_Service); result = service.Put(_hrm_Sys_Service, "api/SysPermission/", permission); //lưu cache quyền của user if (result != null) { HttpContext.Cache[SessionObjects.Permission + userId] = result; } } else { result = (TempPermissionModel)HttpContext.Cache[SessionObjects.Permission + userId]; } #endregion if (result != null) { List<string> modelResult = GetPermissionCurrentUser(result.Data, siteMap.RootNode.ChildNodes.ToList()).Distinct().ToList(); modelResult.Add(siteMap.RootNode.ControllerName);//Add Quyền View Của Trang Home modelResult.Add("Sys_CustomReport"); return View(modelResult); } return View(); //} //catch //{ // return View(); //} }
//<summary> Kiểm tra quyền cho user </summary> //<param name="privilegeType"></param> //<param name="permission"></param> //<returns></returns> public JsonResult CheckPermission(PrivilegeType privilegeType, string permission) { // return Json(true, JsonRequestBehavior.AllowGet); var isSuccess = true; Guid userId = Guid.Empty; if (Request[SessionObjects.UserId] != null) { Guid.TryParse(Request[SessionObjects.UserId].ToString(), out userId); if (userId != Guid.Empty) { Session[SessionObjects.UserId] = userId; } } else { if (Session[SessionObjects.UserId] != null) { Guid.TryParse(Session[SessionObjects.UserId].ToString(), out userId); } } if (permission == "#" || permission == "Home") { //dấu # : khi click vào phân trang (|< < > >|) thì permission sẽ trả về '#' return Json(true, JsonRequestBehavior.AllowGet); } var permissionModel = new PermissionModel { UserID = userId, PrivilegeType = privilegeType, Permission = permission }; var service = new RestServiceClient<PermissionModel>(UserLogin); service.SetCookies(this.Request.Cookies, _hrm_Sys_Service); PermissionModel result = service.Post(_hrm_Sys_Service, "api/SysPermission/", permissionModel); bool isAccess = result == null ? false : result.IsAllowAccess; return Json(isAccess, JsonRequestBehavior.AllowGet); }