Estoy creando un portal de seguimiento de problemas basado en Sharepoint. Los usuarios deben poder agregar entradas, pero en la entrada quiero que una columna solo sea visible para un grupo específico de usuarios (Administradores). ¿Hay alguna manera de establecer el control de acceso basado en columnas?¿Cómo administrar el control de acceso basado en columnas en listas de Sharepoint?
5
A
Respuesta
7
Que yo sepa, no está disponible en la plataforma estándar. Lo que puede hacer por el contrario es a su propio artesanal fieldcontrol
Así que en fieldtypes.xml encargo
<FieldTypes>
<FieldType>
<Field Name="TypeName">MyInteger</Field>
<Field Name="ParentType">Integer</Field>
...
<Field Name="FieldTypeClass">xxx</Field>
</FieldType>
y en sitecolumns.xml
<Field ID="xxx"
Name="xxx"
DisplayName="xxx
Description="xxx"
Group="xxx
Type="MyInteger"
DisplaceOnUpgrade="TRUE"
/>
y en su fieldcontrol
public class MyInteger: SPFieldNumber
{
public MyInteger(SPFieldCollection fields, string fieldName)
: base(fields, fieldName)
{
}
public MyInteger(SPFieldCollection fields, string typeName, string displayName)
: base(fields, typeName, displayName)
{
}
public override BaseFieldControl FieldRenderingControl
{
[SharePointPermission(SecurityAction.LinkDemand, ObjectModel = true)]
get
{
Microsoft.SharePoint.WebControls.BaseFieldControl ctl =
new MyIntegerControl();
ctl.FieldName = InternalName;
return ctl;
}
}
}
y en MyIntegerControl puede hacer lo que quiera (muchas anulaciones), pero un ejemplo Le es:
protected override void CreateChildControls()
{
base.CreateChildControls();
if (this.ControlMode == SPControlMode.New ||
this.ControlMode == SPControlMode.Display)
{
// check that use is admin and display value
}
}
0
También puede hacer este registro por un CustomAction, y cambiar la vista de lista esquema dinámico
<CustomAction Id="CustomAction"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="1003"
ControlAssembly="$SharePoint.Project.AssemblyFullName$"
ControlClass="CustomAction.ColumnPermissionAction"/>
y en su clase de control:
class ColumnPermissionAction : Control
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
HideColumn();
}
private HideColumn(){
WebPart part=//find your web part
string colName="SecretColumn";
if(part is ListViewWebPart){
(part as ListViewWebPart).ListViewXml = (part as ListViewWebPart).ListViewXml.Replace(string.Format("<FieldRef Name=\"{0}\"/>", colName), string.Empty);
}else if(part is XsltListViewWebPart){
PropertyInfo property = typeof(DataFormWebPart).GetProperty("ListViewXmlDom", BindingFlags.NonPublic | BindingFlags.Instance);
if (property != null)
{
XmlNode xmlView = property.GetValue(part as XsltListViewWebPart, null) as XmlNode;
if (xmlView != null)
{
XmlNode node = xmlView.SelectSingleNode("//ViewFields");
if (node != null)
{
var field = node.SelectSingleNode(string.Format("FieldRef[@Name='{0}']", colName));
if (field != null)
{
node.RemoveChild(field);
}
}
}
}
}
}
}
Cuestiones relacionadas
- 1. Columnas de archivos adjuntos múltiples en listas de SharePoint
- 2. Control de acceso basado en roles
- 3. Control de acceso basado en roles
- 4. Control de acceso basado en roles (RBAC) - .Net Componente
- 5. Control de acceso basado en roles: patrón MVC correcto
- 6. Yii marco: control de acceso basado en función
- 7. Control de acceso basado en roles con Spring MVC
- 8. Cómo crear sub-listas en sharepoint
- 9. Representación de relaciones padre-hijo en listas de SharePoint
- 10. Acceso a la lista oculta de SharePoint
- 11. Mejor modelo de base de datos de control de acceso basado en roles (RBAC)
- 12. ¿Cómo se leen las listas de SharePoint de forma programática?
- 13. ¿Cómo configurar el control de acceso en SVN?
- 14. Varias columnas en el control de cuadro de lista
- 15. SQL - 'DISTINCT' basado en solo algunas columnas?
- 16. Proveedores de autenticación 'en gris' en sharepoint 2010 (habilitar el acceso anónimo)
- 17. Cómo preformar el filtrado de CSS basado en listas blancas en PHP
- 18. acelerador de consultas basado en columnas en SQL Server 2012
- 19. Administrar mi base de datos en Source Control
- 20. Python - lista de escritura lista de listas en las columnas
- 21. ¿Cómo puedo obtener un token de acceso oauth en sharepoint 2013?
- 22. Office365 Sharepoint Webservices acceso a través de Java - Axis2
- 23. Alternativa de código abierto para listas de Sharepoint
- 24. Cómo mover documentos de SharePoint 2003 a SharePoint 2007 con control de versiones?
- 25. Control de acceso Permitir origen en el servlet
- 26. Git: ¿Control de acceso? Cómo hacer en la práctica
- 27. SharePoint: ¿debería usar listas o una base de datos?
- 28. Cómo editar default.aspx en el sitio de SharePoint sin SharePoint Designer
- 29. Adjuntar EventReceiver a todas las listas de un sitio sharepoint
- 30. ¿Cómo formatear dos listas separadas en columnas, en lugar de filas en Mathematica?
Estoy de acuerdo que una costumbre el campo es el camino a seguir. Excelente ejemplo! –
Yo también, y muy bien presentado ejemplo! – Colin