Beispiel #1
0
 /// <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;
 }
Beispiel #2
0
 /// <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 };
 }
Beispiel #3
0
 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);
 }
Beispiel #4
0
        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();
            //}
        }
Beispiel #5
0
         //<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);
        }