Below code fetches only site level permissions. Same can me modified to fetch all lists and/or list items and check permissions at that level as well.
string startedAt = System.DateTime.Now.ToShortTimeString();
SPSite site = new SPSite(txtURL.Text);
SPWeb web = site.OpenWeb();
SPUserCollection users = web.SiteUsers;
DataTable dt = new DataTable();
dt.Columns.Add("User");
dt.Columns.Add("Permission");
foreach (SPUser user in users)
{
try
{
SPBasePermissions permissions = web.GetUserEffectivePermissions(user.LoginName);
if (permissions != null)
{
if (permissions.HasFlag(SPBasePermissions.ManagePermissions))
{
dt.Rows.Add(user.Email, "Full Controll");
}
else if (permissions.HasFlag(SPBasePermissions.ManageLists))
{
dt.Rows.Add(user.Email, "Edit");
}
else if (permissions.HasFlag(SPBasePermissions.DeleteListItems))
{
dt.Rows.Add(user.Email, "Contribute");
}
else if (permissions.HasFlag(SPBasePermissions.ViewListItems))
{
dt.Rows.Add(user.Email, "Read");
}
}
}
catch { }
}
gridPermissions.DataSource = dt;
MessageBox.Show("Done!\r\n\r\nStart Time: "
+ startedAt
+ "\r\n\r\nEnd Time: "
+ System.DateTime.Now.ToShortTimeString());
string startedAt = System.DateTime.Now.ToShortTimeString();
SPSite site = new SPSite(txtURL.Text);
SPWeb web = site.OpenWeb();
SPUserCollection users = web.SiteUsers;
DataTable dt = new DataTable();
dt.Columns.Add("User");
dt.Columns.Add("Permission");
foreach (SPUser user in users)
{
try
{
SPBasePermissions permissions = web.GetUserEffectivePermissions(user.LoginName);
if (permissions != null)
{
if (permissions.HasFlag(SPBasePermissions.ManagePermissions))
{
dt.Rows.Add(user.Email, "Full Controll");
}
else if (permissions.HasFlag(SPBasePermissions.ManageLists))
{
dt.Rows.Add(user.Email, "Edit");
}
else if (permissions.HasFlag(SPBasePermissions.DeleteListItems))
{
dt.Rows.Add(user.Email, "Contribute");
}
else if (permissions.HasFlag(SPBasePermissions.ViewListItems))
{
dt.Rows.Add(user.Email, "Read");
}
}
}
catch { }
}
gridPermissions.DataSource = dt;
MessageBox.Show("Done!\r\n\r\nStart Time: "
+ startedAt
+ "\r\n\r\nEnd Time: "
+ System.DateTime.Now.ToShortTimeString());
No comments:
Post a Comment