SharePoint 2010 Role Assignment & Anonymous
Role Assignment &
Anonymous method using code
- Anonymous Access
- Role Assignment in item level
1. Anonymous Access
private void RestrictedFormPagesCode_Click(object sender, EventArgs e)
{
SPSite site = new SPSite("http://home");
SPWeb _web = site.RootWeb;
_web.AnonymousPermMask64 = _web.AnonymousPermMask64 ^ SPBasePermissions.ViewFormPages;
_web.Update();
}
2. Role Assignment in item level
private void RoleAssignment_Click(object sender, EventArgs e)
{
SPSite site = new SPSite("http://home");
SPWeb _web = site.RootWeb;
SPListItem taskitem =
CreateAssignTask(_web);
CreateTaskassign(_web);
setpermission(taskitem);
}
Helper
function for creating a assign task.
static SPListItem CreateAssignTask(SPWeb _web)
{
SPList _list = _web.Lists["task"];
SPListItem taskitem =
_list.Items.Add();
taskitem["Title"] = "this task assign to basant";
SPUser _user = _web.EnsureUser(@"home\\basant.pandey"); // If not exist then create the user using this method
SPFieldUserValue basant = new SPFieldUserValue(_web,
_user.ID, _user.LoginName);
// SPFieldUserValue used for set complex data type values. There
are many more classes are used like SPFieldUrlValue. Because in SharePoint
every think store as a string. Working on the complex values we have to must
use this classes to make our work easy.
taskitem["Assigned
To"] = _user;
taskitem.Update();
return taskitem;
}
static void CreateTaskassign(SPWeb _web)
{
SPRoleDefinition _def = new SPRoleDefinition();
_def.Name = "task asign
users";
_def.Description = "can't delete
this items";
//bit wise or to create
the base permission.
_def.BasePermissions = SPBasePermissions.ViewListItems |
SPBasePermissions.EditListItems
|
SPBasePermissions.Open | SPBasePermissions.ViewPages;
// add the permission to the web.
_web.RoleDefinitions.Add(_def);
}
static void setpermission(SPListItem _item)
{
// set the role permission to item level.
SPWeb _web = _item.Web;
// we have to break the inheritance to give the unique permission
to the items or any other list.
_item.BreakRoleInheritance(false);
// reverse back the item using following constructor of the SPFieldUserValue
SPFieldUserValue taskwebOwener = new SPFieldUserValue(_web, (string)_item["Assigned To"]);
SPRoleAssignment assign = new SPRoleAssignment(taskwebOwener.User); // can be user or can be group
assign.RoleDefinitionBindings.Add(_web.RoleDefinitions["task asign users"]);
_item.RoleAssignments.Add(assign);
}
Comments
Post a Comment