예제 #1
0
        private bool CheckUserRights(NavCategory category)
        {
            List <Right> rights                 = new List <Right>(0);
            bool         hasPrivilage           = true;
            bool         hasCreatePrivilage     = true;
            bool         hasViewOrEditPrivilage = true;

            if (observer != null && !observer.user.IsAdmin())
            {
                hasPrivilage           = false;
                hasCreatePrivilage     = false;
                hasViewOrEditPrivilage = false;
                rights = observer.GetRights(category.FunctionalityCode);
                if (rights.Count == 0)
                {
                    if (observer.hasAcendentPrivilege(category.FunctionalityCode))
                    {
                        hasPrivilage           = true;
                        hasCreatePrivilage     = true;
                        hasViewOrEditPrivilage = true;
                    }
                    else
                    {
                        return(false);
                    }
                }

                foreach (Right right in rights)
                {
                    if (string.IsNullOrWhiteSpace(right.rightType))
                    {
                        hasPrivilage           = true;
                        hasCreatePrivilage     = true;
                        hasViewOrEditPrivilage = true;
                    }
                    else if (right.rightType.Equals(RightType.CREATE.ToString()))
                    {
                        hasCreatePrivilage = true;
                    }
                    else if (right.rightType.Equals(RightType.EDIT.ToString()))
                    {
                        hasViewOrEditPrivilage = true;
                    }
                    else if (right.rightType.Equals(RightType.VIEW.ToString()))
                    {
                        hasViewOrEditPrivilage = true;
                    }
                }
            }

            if (hasPrivilage || hasCreatePrivilage || hasViewOrEditPrivilage)
            {
                return(true);
            }
            return(false);
        }
예제 #2
0
        private DashboardBlock buildBlock(string title, string newLabel, string recentItemsLabel, string newFunctionCode)
        {
            List <Right> rights                 = new List <Right>(0);
            bool         hasPrivilage           = true;
            bool         hasCreatePrivilage     = true;
            bool         hasViewOrEditPrivilage = true;

            if (observer != null && !observer.user.IsAdmin())
            {
                hasPrivilage           = false;
                hasCreatePrivilage     = false;
                hasViewOrEditPrivilage = false;
                rights = observer.GetRights(newFunctionCode);
                if (rights.Count == 0)
                {
                    if (observer.hasAcendentPrivilege(newFunctionCode))
                    {
                        hasPrivilage           = true;
                        hasCreatePrivilage     = true;
                        hasViewOrEditPrivilage = true;
                    }
                    else
                    {
                        return(null);
                    }
                }

                foreach (Right right in rights)
                {
                    if (string.IsNullOrWhiteSpace(right.rightType))
                    {
                        hasPrivilage           = true;
                        hasCreatePrivilage     = true;
                        hasViewOrEditPrivilage = true;
                    }
                    else if (right.rightType.Equals(RightType.CREATE.ToString()))
                    {
                        hasCreatePrivilage = true;
                    }
                    else if (right.rightType.Equals(RightType.EDIT.ToString()))
                    {
                        hasViewOrEditPrivilage = true;
                    }
                    else if (right.rightType.Equals(RightType.VIEW.ToString()))
                    {
                        hasViewOrEditPrivilage = true;
                    }
                }
            }

            if (hasPrivilage || hasCreatePrivilage || hasViewOrEditPrivilage)
            {
                DashboardBlock block = new DashboardBlock(newFunctionCode);
                block.DashboardView             = this;
                block.TitleLabel.Content        = title;
                block.RecentItemsTextBlock.Text = recentItemsLabel;
                if (hasPrivilage || hasCreatePrivilage)
                {
                    buildNewControl(block, newLabel, newFunctionCode);
                }
                customizeMenu(block, newFunctionCode);
                return(block);
            }
            return(null);
        }