Ejemplo n.º 1
0
        private void SaveEditPermission(int portalId, MenuItem menuItem)
        {
            var viewPermission = MenuPermissionController.GetPermissions(menuItem.MenuId).FirstOrDefault(p => p.PermissionKey == "VIEW");
            var editPermission = MenuPermissionController.GetPermissions(menuItem.MenuId).FirstOrDefault(p => p.PermissionKey == "EDIT");

            if (viewPermission == null || editPermission == null)
            {
                return;
            }

            var permissions = MenuPermissionController.GetMenuPermissions(portalId, menuItem.Identifier).ToList();

            permissions.ForEach(p =>
            {
                if (p.PermissionID == viewPermission.PermissionId)
                {
                    if (!permissions.Any(c => c.PermissionID == editPermission.PermissionId && c.RoleID == p.RoleID && c.UserID == p.UserID))
                    {
                        var menuPermissionInfo = new MenuPermissionInfo
                        {
                            MenuPermissionId = Null.NullInteger,
                            MenuId           = menuItem.MenuId,
                            PermissionID     = editPermission.PermissionId,
                            RoleID           = p.RoleID,
                            UserID           = p.UserID,
                            AllowAccess      = p.AllowAccess,
                        };

                        MenuPermissionController.SaveMenuPermissions(portalId, menuItem, menuPermissionInfo);
                    }
                }
            });
        }
Ejemplo n.º 2
0
        private void AddPermissions(MenuItem menuItem, IDictionary <string, object> settings)
        {
            var user           = UserController.Instance.GetCurrentUserInfo();
            var portalSettings = PortalSettings.Current;

            if (!settings.ContainsKey("isAdmin") && portalSettings != null)
            {
                settings.Add("isAdmin", user.IsInRole(portalSettings.AdministratorRoleName));
            }

            if (!settings.ContainsKey("isHost"))
            {
                settings.Add("isHost", user.IsSuperUser);
            }

            if (!settings.ContainsKey("permissions") && portalSettings != null)
            {
                var menuPermissions = MenuPermissionController.GetPermissions(menuItem.MenuId)
                                      .Where(p => p.MenuId == menuItem.MenuId);
                var portalId    = portalSettings.PortalId;
                var permissions = new Dictionary <string, bool>();
                foreach (var permission in menuPermissions)
                {
                    var key           = permission.PermissionKey;
                    var hasPermission = MenuPermissionController.HasMenuPermission(portalId, menuItem, key);
                    permissions.Add(key, hasPermission);
                }

                settings.Add("permissions", permissions);
            }
        }
        public override bool IsAuthorized(AuthFilterContext context)
        {
            var menuItem       = GetMenuByIdentifier();
            var portalSettings = PortalSettings.Current;

            if (menuItem == null || portalSettings == null)
            {
                return(false);
            }

            return(MenuPermissionController.HasMenuPermission(portalSettings.PortalId, menuItem, Permission));
        }
Ejemplo n.º 4
0
        private void UpdateEditPermissions()
        {
            var menuItems = PersonaBarRepository.Instance.GetMenu().AllItems;

            foreach (PortalInfo portal in PortalController.Instance.GetPortals())
            {
                var portalId = portal.PortalID;
                if (MenuPermissionController.PermissionAlreadyInitialized(portalId))
                {
                    menuItems.ForEach(i => this.SaveEditPermission(portalId, i));
                }
            }
        }
 private void SaveMenuPermission(MenuItem menuItem, string roleName)
 {
     var portals = PortalController.Instance.GetPortals();
     foreach (PortalInfo portal in portals)
     {
         var portalId = portal.PortalID;
         //when default permission already initialized, then package need to save default permission immediately.
         if (MenuPermissionController.PermissionAlreadyInitialized(portalId))
         {
             MenuPermissionController.SaveMenuDefaultPermissions(portalId, menuItem, roleName);
         }
     }
 }
Ejemplo n.º 6
0
        public bool IsVisible(PortalSettings portalSettings, UserInfo user, MenuItem menuItem)
        {
            var visible = menuItem.Enabled &&
                          !(user.IsSuperUser && !menuItem.AllowHost) &&
                          MenuPermissionController.CanView(portalSettings.PortalId, menuItem);

            if (visible)
            {
                var menuController = GetMenuItemController(menuItem);
                visible = menuController == null || menuController.Visible(menuItem);
            }

            return(visible);
        }
        public override bool IsAuthorized(AuthFilterContext context)
        {
            var menuItem       = GetMenuByIdentifier();
            var portalSettings = PortalSettings.Current;

            if (menuItem == null || portalSettings == null)
            {
                return(false);
            }
            if (!CheckPermissionForAdmin && PortalSecurity.IsInRole(Constants.AdminsRoleName))
            {
                return(true);
            }
            //Permissions seperated by & should be treated with AND operand.
            //Permissions seperated by , are internally treated with OR operand.
            var allPermissionGroups = Permission.Split(new[] { '&' }, StringSplitOptions.RemoveEmptyEntries);

            return(allPermissionGroups.All(allPermissions => MenuPermissionController.HasMenuPermission(portalSettings.PortalId, menuItem, allPermissions)));
        }
        private void SavePermissionDefinitions()
        {
            if (!_menuItems.Any())
            {
                return;
            }

            foreach (var definition in _permissionDefinitions)
            {
                var identifier = definition.Identifier;
                var menu = _menuItems.FirstOrDefault(m => string.IsNullOrEmpty(identifier) || m.Identifier == identifier);
                if (menu?.MenuId <= 0)
                {
                    menu = PersonaBarRepository.Instance.GetMenuItem(identifier);
                }
                if (menu != null)
                    MenuPermissionController.SavePersonaBarPermission(menu.MenuId, definition.Key, definition.Name);
            }
        }
        private void AddPermissions(MenuItem menuItem, IDictionary <string, object> settings)
        {
            var portalSettings = PortalSettings.Current;

            if (!settings.ContainsKey("permissions") && portalSettings != null)
            {
                var menuPermissions = MenuPermissionController.GetPermissions(menuItem.MenuId)
                                      .Where(p => p.PermissionKey != "VIEW");
                var portalId    = portalSettings.PortalId;
                var permissions = new Dictionary <string, bool>();
                foreach (var permission in menuPermissions)
                {
                    var key           = permission.PermissionKey;
                    var hasPermission = MenuPermissionController.HasMenuPermission(portalId, menuItem, key);
                    permissions.Add(key, hasPermission);
                }

                settings.Add("permissions", permissions);
            }
        }
        public bool IsVisible(PortalSettings portalSettings, UserInfo user, MenuItem menuItem)
        {
            var visible = menuItem.Enabled &&
                          !(user.IsSuperUser && !menuItem.AllowHost) &&
                          MenuPermissionController.CanView(portalSettings.PortalId, menuItem);

            if (visible)
            {
                try
                {
                    var menuController = this.GetMenuItemController(menuItem);
                    visible = menuController == null || menuController.Visible(menuItem);
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                    visible = false;
                }
            }

            return(visible);
        }
Ejemplo n.º 11
0
        public virtual bool CanViewPageList(int menuId)
        {
            var permissions = MenuPermissionController.GetMenuPermissions(PortalSettings.Current.PortalId, menuId);

            return(MenuPermissionController.HasMenuPermission(new MenuPermissionCollection(permissions), "VIEW_PAGE_LIST") || this.IsPageAdmin());
        }