示例#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);
                    }
                }
            });
        }
示例#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);
            }
        }
        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);
            }
        }