コード例 #1
0
ファイル: HomeController.cs プロジェクト: radtek/vnr
        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));
        }
コード例 #2
0
ファイル: SysPermissionController.cs プロジェクト: radtek/vnr
        public TempPermissionModel Get(Guid id)
        {
            var service = new SecurityService();
            TempPermissionModel result = new TempPermissionModel();

            result.Data = service.GetAllPermission(id);
            return(result);
        }
コード例 #3
0
ファイル: SysPermissionController.cs プロジェクト: radtek/vnr
        /// <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);
        }
コード例 #4
0
ファイル: HomeController.cs プロジェクト: radtek/vnr
        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();
            //}
        }