Friday, July 20, 2012

Check if the user has a permission

Here is the code to check if the user has a permission to see the web part:


SPUser user = SPContext.Current.Web.CurrentUser;
bool userRight = DoesUserHaveRights(user);


if ((SPContext.Current.Site.RootWeb.CurrentUser.IsSiteAdmin) || (userRight))           
{
                btnSetAuthor.Visible = true;
                lblMSG.Visible = true;

}
else

{
                btnSetAuthor.Visible = false;
                lblMSG.Visible = false;

}
        private bool DoesUserHaveRights(SPUser user)
        {
            using (SPSite elevatedSite = new SPSite(SPContext.Current.Site.ID))
            {
                using (SPWeb elevatedWeb = elevatedSite.OpenWeb(SPContext.Current.Web.ID))
                {
                       // check if a group exists in the SPWeb
                    bool groupInWeb = Utilities.GroupExistsInWebSite(elevatedWeb, WebPart.SharePointGroup);                   
                   
                    if(groupInWeb)
                    {                       
                        // Assign the group if groupInWeb is true                       
                        SPGroup group = elevatedWeb.Groups[WebPart.SharePointGroup];
                                               
                        if (group.ContainsCurrentUser)
                            return true;
                        else
                            return false;
                    }
                    else
                        return false;
                   }
            }
        }
  

No comments:

Post a Comment