(0) exportieren Drucken
Alle erweitern

Gewusst wie: Arbeiten mit Rollen

SharePoint 2010

Verfügbar in SharePoint Online

Mithilfe des Clientobjektmodells können Sie benutzerdefinierte Rollendefinitionen innerhalb von Websitesammlungen erstellen und neuen oder vorhandenen Benutzern und Gruppen bestimmte Rollen für Websites, Listen und Listenelemente zuweisen. Ähnlich wie Sie die SPRoleDefinitionBindingCollection-Klasse im Serverobjektmodell verwenden, können Sie einen Benutzer oder eine Gruppe, zusammen mit einem RoleDefinitionBindingCollection-Objekt (JavaScript: RoleDefinitionBindingCollection (in englischer Sprache)), der Sammlung von Rollenzuweisungen für ein bestimmtes Objekt hinzufügen.

Verwenden Sie zum Erstellen einer Rollendefinition in der Sammlung von Rollendefinitionen für eine Websitesammlung die BasePermissions-Klasse (JavaScript: BasePermissions (in englischer Sprache)), um einen Berechtigungssatz zu definieren, definieren Sie mit der RoleDefinitionCreationInformation-Klasse (JavaScript: RoleDefinitionCreationInformation (in englischer Sprache)) eine Rolle, die den Berechtigungssatz enthält, und fügen Sie dann die neue Rolle der Sammlung von Rollendefinitionen hinzu. Im folgenden Beispiel wird das Erstellen einer Rolle zum Erstellen und Verwalten von Berechtigungen veranschaulicht. Mit der Order-Eigenschaft (JavaScript: order (in englischer Sprache)) wird angegeben, dass die neue Rolle als viertes Element der benutzerdefinierten Rollendefinitionen angezeigt wird, die auf der Seite Berechtigungsstufen der Websitesammlung aufgelistet werden.

siteUrl = '/sites/MySiteCollection';

function createRoleDefinition() {

    var clientContext = new SP.ClientContext(siteUrl);
    var oWebsite = clientContext.get_web();

    var permissions = new SP.BasePermissions();
    permissions.set(SP.PermissionKind.createAlerts);
    permissions.set(SP.PermissionKind.manageAlerts);

    var roleCreationInfo = new SP.RoleDefinitionCreationInformation();
    roleCreationInfo.set_basePermissions(permissions);
    roleCreationInfo.set_description('A new role with create and manage alerts permission');
    roleCreationInfo.set_name('Create and Manage AlertsT');
    roleCreationInfo.set_order(4);

    this.oRoleDefinition = oWebsite.get_roleDefinitions().add(roleCreationInfo);

    clientContext.load(oRoleDefinition);

    clientContext.executeQueryAsync(
        Function.createDelegate(this, this.onQuerySucceeded), 
        Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {

    var roleInfo = oRoleDefinition.get_name() + ' role created.';
    alert(roleInfo);
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Wenn Sie einem Benutzer eine bestimmte Rolle auf einer Website zuweisen möchten, erstellen Sie ein RoleDefinitionBindingCollection-Objekt (JavaScript: RoleDefinitionBindingCollection (in englischer Sprache)) für den Websitekontext, fügen Sie dem Bindungssammlungsobjekt eine Rollendefinition hinzu, und fügen Sie dann mit der Add(Principal, RoleDefinitionBindingCollection)-Methode (JavaScript: add(principal, roleBindings) (in englischer Sprache)) den Benutzer zusammen mit der Bindungssammlung den Rollenzuweisungen für die Website hinzu. Im folgenden Beispiel wird einem vorhandenen Websitesammlungsbenutzer die im vorherigen Beispiel definierte Rolle zugewiesen.

siteUrl = '/sites/MySiteCollection/MyWebSite';

function addUserToRole() {

    var clientContext = new SP.ClientContext(siteUrl);
    var oWebsite = clientContext.get_web();

    this.oUser = oWebsite.get_siteUsers().getByLoginName('DOMAIN\\alias');
    this.oRoleDefinition = oWebsite.get_roleDefinitions().getByName('Create and Manage Alerts');

    var collRoleDefinitionBinding = SP.RoleDefinitionBindingCollection.newObject(clientContext);        

    collRoleDefinitionBinding.add(oRoleDefinition);

    var oRoleAssignment = oWebsite.get_roleAssignments().add(oUser, collRoleDefinitionBinding);

    clientContext.load(oUser, 'Title');
    clientContext.load(oRoleDefinition, 'Name');

    clientContext.executeQueryAsync(
        Function.createDelegate(this, this.onQuerySucceeded), 
        Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {

    var roleInfo = oUser.get_title() + ' assigned to ' + oRoleDefinition.get_name();
    alert(roleInfo);
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Verwenden Sie wie beim Erstellen der meisten anderen Objekte mithilfe des Clientobjektmodells die GroupCreationInformation-Klasse (JavaScript: GroupCreationInformation (in englischer Sprache)), um eine neue Gruppe zu definieren, und fügen Sie dann mit der Add(GroupCreationInformation)-Methode (JavaScript: add(parameters) (in englischer Sprache)) die Gruppe der Sammlung von Websitegruppen in einer Websitesammlung hinzu. Und genau so wie Sie Benutzern eine Rolle zuweisen, weisen Sie einer Gruppe eine bestimmte Rolle auf einer Website hinzu, indem Sie ein RoleDefinitionBindingCollection-Objekt (JavaScript: RoleDefinitionBindingCollection (in englischer Sprache)) für den Websitekontext erstellen, dem Bindungssammlungsobjekt eine Rollendefinition hinzufügen und dann mit der Add(Principal, RoleDefinitionBindingCollection)-Methode (JavaScript: add(principal, roleBindings) (in englischer Sprache)) die Gruppe zusammen mit der Bindungssammlung den Rollenzuweisungen für die Website hinzufügen. Im folgenden Beispiel erstellen Sie eine Gruppe und weisen ihr die Contribute-Rolle auf der Website zu.

siteUrl = '/sites/MySiteCollection/MyWebSite';

function createGroupAddToRole() {

    var clientContext = new SP.ClientContext(siteUrl);
    this.oWebsite = clientContext.get_web();

    var groupCreationInfo = new SP.GroupCreationInformation();
    groupCreationInfo.set_title('My New GroupT');
    groupCreationInfo.set_description('Description of new group.');
    this.oGroup = oWebsite.get_siteGroups().add(groupCreationInfo);

    var collRoleDefinitionBinding = SP.RoleDefinitionBindingCollection.newObject(clientContext);

    this.oRoleDefinition = oWebsite.get_roleDefinitions().getByType(SP.RoleType.contributor);
    collRoleDefinitionBinding.add(oRoleDefinition);

    var collRollAssignment = oWebsite.get_roleAssignments();
    collRollAssignment.add(oGroup, collRoleDefinitionBinding);

    clientContext.load(oGroup, 'Title');
    clientContext.load(oRoleDefinition, 'Name');

    clientContext.executeQueryAsync(
        Function.createDelegate(this, this.onQuerySucceeded), 
        Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {

    var roleInfo = oGroup.get_title() + ' created and assigned to ' + oRoleDefinition.get_name();
    alert(roleInfo);
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Informationen und Beispiele zur Arbeitsweise mit Clientobjekten im Kontext des Microsoft SharePoint Foundation 2010-Silverlight-Objektmodells finden Sie unter Verwenden des Silverlight-Objektmodells.

Datum

Beschreibung

2010/05/01

Erstveröffentlichung

Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft