Esempio n. 1
0
        private IList <RoleCustomCodeType> GetCurrentUserBusinessRole(IAuthorizeServices service)
        {
            try
            {
                IList <RoleCustomCodeType> roles = new List <RoleCustomCodeType>();

                if (!SessionHelper.HasSessionValue(SessionHelper.GTSCurrentUserManagmentState))
                {
                    bool isManager = service.IsManager(this.CurrentUSer.Person.ID);

                    bool isSubstitute = service.IsSubstituteManager(this.CurrentUSer.Person.ID);

                    bool isOperator = service.IsOperator(this.CurrentUSer.Person.ID);

                    Dictionary <string, object> ManagementState = new Dictionary <string, object>();

                    if (isManager)
                    {
                        Role role = service.GetRoleByCode(RoleCustomCodeType.Manager);
                        if (role != null)
                        {
                            ManagementState.Add("ManagerRoleId", role.ID);
                        }
                    }
                    if (isOperator)
                    {
                        Role role = service.GetRoleByCode(RoleCustomCodeType.Operator);
                        if (role != null)
                        {
                            ManagementState.Add("OperatorRoleId", role.ID);
                        }
                    }
                    if (isSubstitute)
                    {
                        Role role = service.GetRoleByCode(RoleCustomCodeType.Substitute);
                        if (role != null)
                        {
                            ManagementState.Add("SubstituteRoleId", role.ID);
                        }
                    }


                    ManagementState.Add("IsManager", isManager);
                    ManagementState.Add("IsOperator", isOperator);
                    ManagementState.Add("IsSubstitute", isSubstitute);

                    SessionHelper.SaveSessionValue(SessionHelper.GTSCurrentUserManagmentState, ManagementState);
                }

                Dictionary <string, object> managementState = (Dictionary <string, object>)SessionHelper.GetSessionValue(SessionHelper.GTSCurrentUserManagmentState);

                if (Utility.ToBoolean(managementState["IsManager"]))
                {
                    roles.Add(RoleCustomCodeType.Manager);
                }

                if (Utility.ToBoolean(managementState["IsOperator"]))
                {
                    roles.Add(RoleCustomCodeType.Operator);
                }

                if (Utility.ToBoolean(managementState["IsSubstitute"]))
                {
                    roles.Add(RoleCustomCodeType.Substitute);
                }

                return(roles);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        protected void Authorize(IAuthorizeServices service)
        {
            #region Retrive Page Controls
            List <ResourceControl> pageControles = new List <ResourceControl>();

            foreach (System.Web.UI.Control innerControl1 in Page.Controls)
            {
                if (innerControl1 is HtmlForm)
                {
                    GetControls(pageControles, innerControl1.Controls);
                }
            }

            if (NavBarControles.Count > 0)
            {
                foreach (NavBar navbar in NavBarControles)
                {
                    if (navbar.Items.Count > 0)
                    {
                        foreach (NavBarItem navbarItem in navbar.Items)
                        {
                            GetNavBarItems(navbarItem);
                        }
                    }
                }
            }

            if (toolbarControles.Count > 0)
            {
                foreach (ToolBar toolbar in toolbarControles)
                {
                    if (toolbar.Items.Count > 0)
                    {
                        foreach (ToolBarItem toolbarItem in toolbar.Items)
                        {
                            toolbarItems.Add(toolbarItem);
                        }
                    }
                }
            }

            #endregion

            accessDeniedList.AddRange(service.GetAccessDeniedList(CurrnetUserRole.ID));
            accessAllowedResourceList.AddRange(service.GetAlowedResourceList(CurrnetUserRole.ID));

            #region Apply Other Business Roles
            IList <RoleCustomCodeType>  otherRoles      = this.GetCurrentUserBusinessRole(service);
            Dictionary <string, object> managementState = (Dictionary <string, object>)SessionHelper.GetSessionValue(SessionHelper.GTSCurrentUserManagmentState);

            if (this.CurrentUSer.Role.CustomCode.Equals(((int)RoleCustomCodeType.User).ToString()))
            {
                if (otherRoles.Count > 0)
                {
                    foreach (RoleCustomCodeType roleCode in otherRoles)
                    {
                        decimal roleId = 0;
                        switch (roleCode)
                        {
                        case RoleCustomCodeType.Manager:
                            if (managementState.ContainsKey("ManagerRoleId"))
                            {
                                roleId = Utility.ToDecimal(managementState["ManagerRoleId"]);
                            }
                            break;

                        case RoleCustomCodeType.Substitute:
                            if (managementState.ContainsKey("SubstituteRoleId"))
                            {
                                roleId = Utility.ToDecimal(managementState["SubstituteRoleId"]);
                            }
                            break;

                        case RoleCustomCodeType.Operator:
                            if (managementState.ContainsKey("OperatorRoleId"))
                            {
                                roleId = Utility.ToDecimal(managementState["OperatorRoleId"]);
                            }
                            break;
                            //Role role = service.GetRoleByCode(roleCode);
                        }
                        if (roleId > 0)
                        {
                            accessDeniedList.AddRange(service.GetAccessDeniedList(roleId));
                            accessAllowedResourceList.AddRange(service.GetAlowedResourceList(roleId));
                        }
                    }
                    accessDeniedList          = accessDeniedList.Distinct().ToList();
                    accessAllowedResourceList = accessAllowedResourceList.Distinct().ToList();
                }
            }
            #endregion


            DoAthorizeOnNavBarItems();
            DoAthorizeOnToolBarItems();
        }