Sharepoint 2010: How To Verify if a site user is site Administrator
In this post, will discuss about how to verify if a site user is site Administrator.
In many SharePoint 2010 projects the following code has been user to check if a certain user has full control or not over a specific site:
if (!SPContext.Current.Web.CurrentUser.IsSiteAdmin)
But this code only check if a user is a Site Collection administrator. Even if the current user is in the owners group, it will not work. And therefore, problems will happen once implemented live.
Workaround:
I wrote a method that checks if a user belongs to the Owners group:
if(!isCurrentUserOwner())
Method:
private bool isCurrentUserOwner()
{
bool currentUserOwner = false;
SPUser currentUser = SPContext.Current.Web.CurrentUser;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
try
{
SPSite currentSite = new SPSite(SPContext.Current.Site.Url);
SPWeb currentWeb = currentSite.OpenWeb(SPContext.Current.Web.ID);
SPGroup ownersGroup = currentWeb.AssociatedOwnerGroup;
//Check if currentuser belongs to owners group of the current web
foreach(SPUser user in ownersGroup.Users)
{
if (currentUser.ID == user.ID)
{
currentUserOwner = true;
}
}
}
catch (Exception ex)
{
//blah blah
}
});
//Not an owner member
return currentUserOwner;
}

