Domanda

Sto cercando la possibilità di definire le seguenti opzioni per l'elenco SharePoint.So che può essere fatto dall'interfaccia, ma come fare se da XML o codice?Posso impostare questo da qualche parte nella definizione dell'elenco o dell'istanza elenco:

    .
  • I contributori dovrebbero essere in grado di creare elementi, ma non dovrebbero essere in grado di modificare né eliminare elementi di altri utenti (ma modificare gli elementi propri - Sì).

  • Approversità, Amministratori del sito e collezione del sito Amministrazioneootrs dovrebbero avere il controllo completo su tutti gli articoli

È stato utile?

Soluzione

È molto probabile alla ricerca della proprietà RoleeSesignments disponibili per la maggior parte degli ambiti.

Supponi che potresti iniziare con qualcosa come questo

private void DoStuff() 
{
    SPList list = web.Lists["MyList"];

    // Create custom role
    SPRoleDefinitionCollection roles = web.RoleDefinitions;
    SPRoleDefinition roleDefinition = roles["Contribute"];
    roleDefinition.BasePermissions = SPBasePermissions.AddListItems |
        SPBasePermissions.BrowseDirectories |
        SPBasePermissions.EditListItems |
        SPBasePermissions.DeleteListItems |
        SPBasePermissions.AddDelPrivateWebParts;
    roleDefinition.Update();

    //Creates a new role assignment for a group
    SPGroup myGroup = web.SiteGroups["Team Site Members"];
    SPRoleAssignmentCollection roleAssignments = web.RoleAssignments;

    // SPRoleAssignment accepts a SPPrincipal which can be a SPUser or SPGroup
    SPRoleAssignment roleAssignment = new SPRoleAssignment(myGroup);

    //add a new role definition to the bound role definitions for the role assignment
    SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;
    roleDefBindings.Add(roles["Contribute"]);

    //Add the new role assignment to the collection of role assignments for the site.
    roleAssignments.Add(roleAssignment);

    // Stop inheriting permissions
    list.BreakRoleInheritance(true);
    list.RoleAssignments.Add(roleAssignment);
    list.Update();
}
.

Altri suggerimenti

Trikks, questa è una soluzione, ma mi hai fatto pensare.
Risulta, la cosa di cui avevo bisogno è WriteSecurity.Ho aggiunto il ricevitore della funzione e in FeatureActivated ho impostato SPList.WriteSecurity = 2 su questo elenco.

Ho trovato questo MSDN Docu, http://msdn.microsoft.com/en-us/library/dd588628(v=Office.11).aspx
Supponiamo che sia possibile impostare questo in codice, ma dove?

Ho aggiunto questa parte a Schema.xml in ListDefinition, come nella documentazione, ma questo non funziona.Dopo la distribuzione e la creazione di una nuova lista, vado su Impostazioni elenco -> Impostazioni avanzate e controllare 'Crea e modifica Access'.Tuttavia, controllato è la prima opzione, non secondo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top