Pregunta

escenario:

Cuando un usuario (hágalese directamente el controlador 1) crea un sitio usando una definición de sitio, "que ya tiene una definición de la lista personalizada en ella y otras cosas diferentes (como listas, webparts)"

Lista personalizada: Lo que hace es, puede crear un artículo y asignarlo a cualquier otro controlador o a usted mismo.

Pregunta: Entonces, lo que quiero es, cuando se está creando el sitio, solo quiero dar "Agregar nuevos elementos" / Editar elementos de la lista Permiso para esa lista específica al controlador 1 o el controlador "N" dio permiso para ese sitio específico.

Sé que necesito agregar código en algún lugar mientras creas el sitio, pero no sé cómo voy a hacer eso en este contexto: /

vítores

¿Fue útil?

Solución

No estoy seguro de que los usuarios deben poder hacer lo que, pero si necesita dar controladores de diferencias de control de elementos de la lista de diferencias, podría verlo Configuración de la seguridad de nivel de elemento en un eventoHandler

Otros consejos

Aquí hay un ejemplo de código que escribí para cambiar los permisos en una lista.Esto no es un elemento de la lista, pero probablemente puede descubrir cómo hacer esa parte :)

    SPList splDocuments = spwWeb.Lists["Documents"];
    splDocuments.BreakRoleInheritance(true);
    string strGroup = "[The name of your group]";
    RemoveAllPermissions(splDocuments, strGroup);

y luego estas funciones:

    private SPPrincipal GetPrincipal(SPSite spsSite, string strGroupName)
    {
        SPPrincipal sppGroup = null;

        if (SPUtility.IsLoginValid(spsSite, strGroupName))
        {
            sppGroup = spsSite.RootWeb.EnsureUser(strGroupName);
        }
        else
        {
            foreach (SPGroup spgGroup in spsSite.RootWeb.SiteGroups)
            {
                if (spgGroup.Name.ToUpper(CultureInfo.InvariantCulture) ==
                    strGroupName.ToUpper(CultureInfo.InvariantCulture))
                {
                    sppGroup = spgGroup;
                    break;
                }
            }
        }
        return sppGroup;
    }

    private void RemoveAllPermissions(SPList splList, string strGroupName)
    {
        SPPrincipal sppPrincipal = GetPrincipal(splList.ParentWeb.Site, strGroupName);
        SPRoleAssignment spraRoleAssignment = splList.RoleAssignments.GetAssignmentByPrincipal(sppPrincipal);

        spraRoleAssignment.RoleDefinitionBindings.RemoveAll();
        spraRoleAssignment.Update();

        splList.Update();
    }

Licenciado bajo: CC-BY-SA con atribución
scroll top