KSUP: How I Built Field Visibility by Permissions for Secure, Dynamic Forms
- Published on
- • 2 mins read•--- views
Task:
It was necessary to develop functionality that would show or hide certain fields for a user depending on their access rights.
Implementation
A UserControl embedded on the field editing page provides PeoplePicker functionality with the ability to specify individual users and security groups. The JS script is embedded by the UserControl and provides reading/saving settings in JSON format.
Code Examples
Content `Source Code` requires special access key
Please, communicate with administrator to obtain the access key here
Content `Source Code` requires special access key
Please, communicate with administrator to obtain the access key here
The developed module is covered by tests.
Example:
[Test]
public void IsFieldVisibleForUser_FieldVisible_ByUserLogin()
{
var request = FieldVisibilityServiceValueSet.OpYearField.Request(true);
SPField field = null;
try
{
var user = this.FindUserByLogin(FieldVisibilityServiceValueSet.OpYearField.UserFurletov);
_fieldVisibilityService.ProcessSaveVisibilityRequest(request);
field = _fieldVisibilityService.GetFieldWrapper(request);
Assert.True(_fieldVisibilityService.IsFieldVisibleForUser(field, user));
}
catch (Exception)
{
// ignored
}
finally
{
field?.RemoveFieldAttribute(FieldVisibilityService.FieldVisibilityKey);
}
}