Tworzę portal do śledzenia błędów na podstawie SharePoint. Użytkownicy powinni mieć możliwość dodawania wpisów, ale w samym wpisie chcę, aby jedna kolumna była widoczna tylko dla określonej grupy użytkowników (administratorów). Czy istnieje sposób ustawiania kontroli dostępu opartej na kolumnie?Jak zarządzać kontrolą dostępu opartą na kolumnie na listach SharePoint?
5
A
Odpowiedz
7
O ile mi wiadomo, nie jest dostępny na standardowej platformie. Co można zrobić z drugiej strony jest dopracowywać swój własny fieldcontrol
Tak w niestandardowym fieldtypes.xml
<FieldTypes>
<FieldType>
<Field Name="TypeName">MyInteger</Field>
<Field Name="ParentType">Integer</Field>
...
<Field Name="FieldTypeClass">xxx</Field>
</FieldType>
aw sitecolumns.xml
<Field ID="xxx"
Name="xxx"
DisplayName="xxx
Description="xxx"
Group="xxx
Type="MyInteger"
DisplaceOnUpgrade="TRUE"
/>
iw swoim 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;
}
}
}
oraz w MyIntegerControl możesz robić, co chcesz (wiele nadpisań), ale przykład LE:
protected override void CreateChildControls()
{
base.CreateChildControls();
if (this.ControlMode == SPControlMode.New ||
this.ControlMode == SPControlMode.Display)
{
// check that use is admin and display value
}
}
0
Można również zrobić to poprzez zarejestrowanie CustomAction i zmianę widoku listy schemat dynamiczny
<CustomAction Id="CustomAction"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="1003"
ControlAssembly="$SharePoint.Project.AssemblyFullName$"
ControlClass="CustomAction.ColumnPermissionAction"/>
oraz w klasie kontrolnej:
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);
}
}
}
}
}
}
}
Powiązane problemy
- 1. Właściwość opartą na gradle
- 2. Uzyskiwanie dostępu do pozycji na listach w słowniku python
- 3. python - operacje na listach
- 4. SQL Dołącz na kolumnie jak inny kolumnie
- 5. Jak duplikować stronę opartą na PHP?
- 6. Określ wiele subdomen z kontrolą dostępu Pochodzenie
- 7. SharePoint: Jak programowo zarządzać uprawnieniami SPFolder i SPListItem
- 8. Węzeł główny na połączonych listach
- 9. Jak zrobić iterator na kilku posortowanych listach?
- 10. Jak + wartości na dwóch listach krotek
- 11. Python - Iteracja na listach zagnieżdżonych
- 12. zastosowaniu funkcji na dwóch listach
- 13. Znajdowanie nietypowych elementów na listach
- 14. Uwierzytelnianie Uwierzytelnianie na SharePoint na iPhonie
- 15. Jak zarządzać usuwaniem elementu na CursorAdapterie
- 16. Jak zarządzać plikami na przenośnym urządzeniu MTP?
- 17. Jak zarządzać zbiorami obiektów na wiosnę?
- 18. Zamień NA w kolumnie na wartość w sąsiedniej kolumnie
- 19. Utwórz piaskownicę Java opartą na zasadach bezpieczeństwa
- 20. Tworzenie nowej DataFrame Spark z nową wartością kolumny opartą na kolumnie w pierwszej ramce danych Java
- 21. Histogram na kolumnie Pandy
- 22. Zaneguj wartość logiczną opartą na innym logiczna
- 23. #pragma unieważnić funkcję opartą na podpisie?
- 24. Łączące się na listach podrzędnych w Pythonie
- 25. Czytanie plików .csv na listach Pythona
- 26. Łączenie pasków przewijania na sąsiednich listach razem
- 27. Funkcje "puste" i "lub" na pustych listach
- 28. Próba generowania średnich na wielu listach
- 29. porównaj, czy element istnieje na dwóch listach
- 30. Iterowanie na dwóch listach jeden po drugim
Zgadzam się, że zwyczaj pole jest drogą do zrobienia. Doskonały przykład! –
Ja też, i bardzo ładnie ułożony przykład! – Colin