Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

We have a fairly large public facing publishing site in which we've just noticed that the "Settings" menu is missing from the "People and Groups: All People" menu. I'm not sure how long it's been gone for or whether it was ever there but we need it back.

The "All People" page is accessible via http://yoursiteurl/_layouts/people.aspx?MembershipGroupId=0&FilterField1=ContentType&FilterValue1=Person . You should see "New", "Actions" and "Settings" in the menu. Our problem is that the Settings option is not there.

There are other web apps on the farm and other site collections within the same web app. None of the other site collections have this problem so it appears to be site collection specific. All subsites within the site collection have the same problem.

The farm is SP1 plus December updates.

Any ideas why this might be happening or even directions on where to start looking?

Thanks, James.

share|improve this question
1  
What type of authentication are you using for the public-facing Site Collection? –  Marc D Anderson Nov 19 '09 at 12:51
1  
Hi. To view these pages you need to be logged in through Windows Auth on the "edit" Access Mapping. E.g. the site was originally set up as Windows Auth but is exposed to the public by extending the Web App and making anonymous (with some FBA). I've just been notified that some instances within the same site collection can see the Settings option. I'll update the question. –  j.strugnell Nov 19 '09 at 13:33
    
Correction - You see the Settings menu if you click on an actual group but not on the "All People" page. –  j.strugnell Nov 19 '09 at 13:55
add comment

6 Answers 6

Perhaps a permissions issue? Try testing it as a Site Collection administrator.

share|improve this answer
    
I already am - sorry should have mentioned that. –  j.strugnell Nov 19 '09 at 14:56
add comment

I appreciate all of the above help. I hadn't realised these answers had been sat here waiting for me. In the time between posting the question and today we have upgraded the site to SP2 and Oct CU. I've just checked and the problem is no longer there. So it seems the upgrade must have resolved the situation somehow. Thanks again for all the help.

James.

share|improve this answer
    
@j.strugnell: If you're not able to visit the site regularly, you can now turn on e-mail notifications on your questions. That wouldn't have been available/working when you originally asked this! :-) –  Alex Angas Jan 29 '10 at 11:10
add comment

Try View Source on the page and see if you can find any traces in the html of the settings menu. Perhaps it's a client/browser issue caused by custom html/script that stops it from displaying properly.

share|improve this answer
    
I've taken a look and it is not being rendered at all. –  j.strugnell Nov 20 '09 at 16:35
add comment

I have enclosed some interesting code obtained using Reflector.

people.aspx contains an MenuItemTemplate with ID="MenuItemCustomize" and Visible="false". The code behind is responsible for unhiding the MenuItem based on some logic. Check out the last few lines in the second code snippet. I think this is where for some reason it does not go inside the if statement for your where it should set Visible to true for your MenuItemCustomize. You could write some code in a custom control that tests for the same conditions. Include it in the masterpage and navigate to people.aspx to ensure you have the same context. Use SPContext.Current.Web as the web to test against.

Microsoft.SharePoint.ApplicationPages.PeoplePage.OnLoad()

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    if (string.IsNullOrEmpty(base.Request.QueryString["MembershipGroupId"]))
    {
        string str;
        if (base.AssociatedGroups.Count > 0)
        {
            str = "people.aspx?MembershipGroupId=" + base.AssociatedGroups[0].ID.ToString(CultureInfo.InvariantCulture);
        }
        else
        {
            str = "people.aspx?MembershipGroupId=0&FilterField1=ContentType&FilterValue1=Person";
        }
        SPUtility.Redirect(str, SPRedirectFlags.RelativeToLayoutsPage, this.Context);
    }
    base.UserListView.ViewId = this.CurrentViewId.ToString("B");
    this.UpdateViewSelector();
    if (!base.IsPostBack)
    {
        if (!this.IsGroupMembershipPage)
        {
            this.MenuItemManageGroup.Visible = false;
            this.MenuItemRemoveUsersFromGroup.Visible = false;
            this.BtnRemoveUsersFromGroup.Visible = false;
            this.MenuItemAddUserToGroup.Visible = false;
            this.MenuItemRemoveUsersFromSiteCollection.Visible = base.Web.HasUniqueRoleAssignments && base.Web.CurrentUser.IsSiteAdmin;
            this.BtnRemoveUsersFromSiteCollection.Visible = base.Web.HasUniqueRoleAssignments && base.Web.CurrentUser.IsSiteAdmin;
            base.MenuItemEditGroupsQuickLaunch.Visible = false;
            base.MenuItemSetupGroups.Visible = false;
            this.PanelPeopleInGroup.Visible = false;
            this.PanelAllPeople.Visible = true;
            this.LiteralAllPeople.Visible = true;
            this.LabelGroupName.Visible = false;
            if (base.Web.UserIsWebAdmin && (base.Web.HasUniqueRoleAssignments || (base.AssociatedGroups.Count > 0)))
            {
                this.MenuItemAddUserToGroup.Visible = true;
                PeopleGroupPageBase.SetMenuItemNavigateUrlAppendGoToPage(this.MenuItemAddUserToGroup, base.Web.Url + "/_layouts/aclinv.aspx");
                base.DefaultNewMenuAction = this.MenuItemAddUserToGroup.ClientOnClickScript;
            }
            PeopleGroupPageBase.UpdateUserPageMenuItems(base.Web, base.MenuItemCreateNewGroup, null, null, null, null, base.MenuItemCustomize);
        }
        else
        {
            this.PanelPeopleInGroup.Visible = true;
            this.PanelAllPeople.Visible = false;
            this.LabelGroupName.Visible = true;
            this.LabelGroupName.Text = SPHttpUtility.HtmlEncode(this.CurrentGroup.Name);
            this.LiteralAllPeople.Visible = false;
            SPFieldMultiLineText text = (SPFieldMultiLineText) base.Web.SiteUserInfoList.Fields[SPBuiltInFieldId.Notes];
            object obj2 = this.CurrentGroupListItem[text.InternalName];
            this.LabelGroupDescription.Text = text.GetFieldValueAsHtml(obj2);
            this.MenuItemManageGroup.Visible = this.CurrentGroup.CanCurrentUserManageGroup;
            if (this.MenuItemManageGroup.Visible)
            {
                PeopleGroupPageBase.SetMenuItemNavigateUrlAppendGoToPage(this.MenuItemManageGroup, base.Web.Url + "/_layouts/editgrp.aspx?" + SPHttpUtility.UrlKeyValueEncode("Group", this.CurrentGroup.Name));
            }
            this.MenuItemAddUserToGroup.Visible = this.CurrentGroup.CanCurrentUserEditMembership;
            if (this.MenuItemAddUserToGroup.Visible)
            {
                PeopleGroupPageBase.SetMenuItemNavigateUrlAppendGoToPage(this.MenuItemAddUserToGroup, base.Web.Url + "/_layouts/aclinv.aspx?GroupId=" + SPHttpUtility.UrlKeyValueEncode(this.CurrentGroup.ID.ToString(CultureInfo.InvariantCulture)));
                base.DefaultNewMenuAction = this.MenuItemAddUserToGroup.ClientOnClickScript;
            }
            this.UpdateJoinLeaveGroupButton();
            this.BtnRemoveUsersFromGroup.Visible = this.CurrentGroup.CanCurrentUserEditMembership;
            this.MenuItemRemoveUsersFromGroup.Visible = this.CurrentGroup.CanCurrentUserEditMembership;
            this.BtnRemoveUsersFromSiteCollection.Visible = false;
            this.MenuItemRemoveUsersFromSiteCollection.Visible = false;
            this.UpdateGroupEmailSettings();
            base.UserListView.Visible = this.CurrentGroup.CanCurrentUserViewMembership;
            this.PanelCannotViewMembership.Visible = !this.CurrentGroup.CanCurrentUserViewMembership;
            this.MenuItemEmail.Visible = this.CurrentGroup.CanCurrentUserViewMembership;
            this.MenuItemCall.Visible = this.CurrentGroup.CanCurrentUserViewMembership;
            if (this.MenuItemViewGroupPerm != null)
            {
                this.MenuItemViewGroupPerm.Visible = GroupPermissions.DoesCurrentUserHavePermission(base.Web, this.CurrentGroup);
                if (this.MenuItemViewGroupPerm.Visible)
                {
                    this.MenuItemViewGroupPerm.ClientOnClickScript = "GotoGroupSecScopes('" + SPHttpUtility.EcmaScriptStringLiteralEncode(this.CurrentGroup.ID.ToString(CultureInfo.InvariantCulture)) + "');";
                }
            }
            PeopleGroupPageBase.UpdateUserPageMenuItems(base.Web, base.MenuItemCreateNewGroup, base.MenuItemEditGroupsQuickLaunch, base.MenuItemSetupGroups, null, null, base.MenuItemCustomize);
        }
    }
    base.UpdateQuickLaunchMenu(this.GroupId);
    if (!this.IsGroupMembershipPage)
    {
        base.MenuQuickLaunch.Items[PeopleGroupPageBase.AllPeopleMenuItemIndex].Selected = true;
    }
}

Microsoft.SharePoint.ApplicationPages.PeopleGroupPageBase.UpdateUserPageMenuItems()

internal static void UpdateUserPageMenuItems(SPWeb Web, MenuItemTemplate MenuItemCreateNewGroup, MenuItemTemplate MenuItemEditGroupsQuickLaunch, MenuItemTemplate MenuItemSetupGroups, MenuItemTemplate MenuItemSiteAdmins, MenuItemTemplate MenuItemPermLevel, MenuItemTemplate MenuItemCustomize)
{
    string str;
    MenuItemCreateNewGroup.Visible = Web.DoesUserHavePermissions(SPBasePermissions.CreateGroups);
    if (MenuItemCreateNewGroup.Visible)
    {
        str = Web.Url + "/_layouts/newgrp.aspx";
        MenuItemCreateNewGroup.ClientOnClickNavigateUrl = SPHttpUtility.UrlPathEncode(str, false);
    }
    if (MenuItemEditGroupsQuickLaunch != null)
    {
        MenuItemEditGroupsQuickLaunch.Visible = Web.DoesUserHavePermissions(SPBasePermissions.ManageWeb);
        if (MenuItemEditGroupsQuickLaunch.Visible)
        {
            str = Web.Url + "/_layouts/associatedgroups.aspx";
            SetMenuItemNavigateUrlAppendGoToPage(MenuItemEditGroupsQuickLaunch, str);
        }
    }
    if (MenuItemSetupGroups != null)
    {
        MenuItemSetupGroups.Visible = Web.DoesUserHavePermissions(SPBasePermissions.ManagePermissions | SPBasePermissions.CreateGroups | SPBasePermissions.ManageWeb);
        if (MenuItemSetupGroups.Visible)
        {
            str = Web.Url + "/_layouts/permsetup.aspx";
            SetMenuItemNavigateUrlAppendGoToPage(MenuItemSetupGroups, str);
        }
    }
    if (MenuItemSiteAdmins != null)
    {
        MenuItemSiteAdmins.Visible = Web.CurrentUser.IsSiteAdmin && Web.IsRootWeb;
        if (MenuItemSiteAdmins.Visible)
        {
            str = Web.Url + "/_layouts/mngsiteadmin.aspx";
            SetMenuItemNavigateUrlAppendGoToPage(MenuItemSiteAdmins, str);
        }
    }
    if (MenuItemPermLevel != null)
    {
        MenuItemPermLevel.Visible = Web.HasUniqueRoleAssignments && Web.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions);
        if (MenuItemPermLevel.Visible)
        {
            str = Web.Url + "/_layouts/role.aspx";
            SetMenuItemNavigateUrlAppendGoToPage(MenuItemPermLevel, str);
        }
    }
    if (MenuItemCustomize != null)
    {
        if (Web.IsRootWeb)
        {
        }
        MenuItemCustomize.Visible = (Web.CurrentUser != null) && Web.CurrentUser.IsSiteAdmin;
        if (MenuItemCustomize.Visible)
        {
            SetMenuItemNavigateUrlAppendGoToPage(MenuItemCustomize, Web.Url + "/_layouts/listedit.aspx?List=" + Web.SiteUserInfoList.ID.ToString());
        }
    }
}
share|improve this answer
    
are you ABSOLUTELY sure you are testing as a Site Collection administrator? :) –  Jaap Vossers Dec 18 '09 at 12:05
add comment

And are you sure you are accessing the people page at the site collection root?

share|improve this answer
    
the funny thing in that code is that there is nothing inside if (Web.IsRootWeb){ } –  Jaap Vossers Dec 18 '09 at 13:42
    
I thought that was funny as well. It could be a reflector bug or something else is going on. But I tested it in my environment. If I go to all people at the site collection root, I see list settings, if I go to all people at a sub site, I don't. And yes, I'm a site collection admin. –  Steve Lineberry Dec 18 '09 at 14:11
add comment

It appears that if you have subsites that inherit from the root site collection you must manage the change or addition of views at the top level.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.