0

My requirement is when someone login to site and if he belong to 'owner' group it need to redirect immediately to specific site and if he belong to member group then need to navigate/redirect to same specified site other page.

Like if I open SharePoint site and I belong to Administrators then immediately I get redirected to SharePoint site home page and if I belong to Memebers then I get redirected to another page. Logic should be based on user name in SharePoint server 2010.

Do anyone have functionality for this JavaScript/any other code/programmatically for the same.

Benny Skogberg
  • 25,542
  • 12
  • 68
  • 163
Prasanth Nellore
  • 21
  • 1
  • 2
  • 4

2 Answers2

1

You can add a script editor webpart to the home page and add following script. This script checks if user belongs Members group and then redirects it to some other page. You can enhance it to check if user belongs to other groups.

<script type="text/javascript">
function IsCurrentUserMemberOfGroup(groupName, OnComplete) {

        var currentContext = new SP.ClientContext.get_current();
        var currentWeb = currentContext.get_web();

        var currentUser = currentContext.get_web().get_currentUser();
        currentContext.load(currentUser);

        var allGroups = currentWeb.get_siteGroups();
        currentContext.load(allGroups);

        var group = allGroups.getByName(groupName);
        currentContext.load(group);

        var groupUsers = group.get_users();
        currentContext.load(groupUsers);

        currentContext.executeQueryAsync(OnSuccess,OnFailure);

        function OnSuccess(sender, args) {
            var userInGroup = false;
            var groupUserEnumerator = groupUsers.getEnumerator();
            while (groupUserEnumerator.moveNext()) {
                var groupUser = groupUserEnumerator.get_current();
                if (groupUser.get_id() == currentUser.get_id()) {
                    userInGroup = true;
                    break;
                }
            }  
            OnComplete(userInGroup);
        }

        function OnFailure(sender, args) {
            OnComplete(false);
        }    
}

function CheckCurrentUerGroup() 
{
  IsCurrentUserMemberOfGroup("Members", function (isCurrentUserInGroup) {
    if(isCurrentUserInGroup)
    {
        //Redirect to a certain page
        window.location = "http://addressOfPage;
    }
  });

}
ExecuteOrDelayUntilScriptLoaded(CheckCurrentUerGroup, 'SP.js');
</script>

Source: Check if user is in a specified group

Nadeem Yousuf-AIS
  • 18,707
  • 4
  • 28
  • 59
0

Suppose you have two pages : 'OwnerPage' & 'MemberPage'

Write below code on your 'OwnerPage' Page_Load event :

SPUser currentUser = web.CurrentUser;
bool isExist = false;
string groupName = "Owner Group"; // Owner Group Name
isExist = IsUserMemberOfGroup(currentUser, groupName); // call function
if(isExist)
{
   // stay on OwnerPage
}
else
{
   // redirect to MemberPage
}

Calling Function :

// Check that user in the Group or not
public static bool IsUserMemberOfGroup(SPUser user, string groupName)
        {
            bool result = false;

if (!String.IsNullOrEmpty(groupName) && user != null) { foreach (SPGroup group in user.Groups) { if (group.Name == groupName) { // found it result = true; break; } } }

    return result;
}

Ronak Patel
  • 3,261
  • 3
  • 23
  • 45