IsGrantedExtensions.CanWriteByUser(SecurityStrategy, IPermissionPolicyUser, Type, IObjectSpace, Object, String) Method
Checks whether the specified user can write an object with the specified key or this object's member.
Namespace: DevExpress.ExpressApp.Security
Assembly: DevExpress.ExpressApp.Security.v20.2.dll
Declaration
public static bool CanWriteByUser(
this SecurityStrategy security,
IPermissionPolicyUser targetUser,
Type type,
IObjectSpace objectSpace,
object targetObjectKey,
string memberName = null
)
<ExtensionAttribute>
Public Shared Function CanWriteByUser(
security As SecurityStrategy,
targetUser As IPermissionPolicyUser,
type As Type,
objectSpace As IObjectSpace,
targetObjectKey As Object,
memberName As String = Nothing
) As Boolean
Parameters
Name | Type | Description |
---|---|---|
security | SecurityStrategy | A SecurityStrategy object that specifies an application's Security Strategy. |
targetUser | IPermissionPolicyUser | An IPermissionPolicyUser object that is a user this method checks. |
type | Type | A Type of an object this method checks. |
objectSpace | IObjectSpace | |
targetObjectKey | Object | An Object that is a key of an object this method checks. |
Optional Parameters
Name | Type | Default | Description |
---|---|---|---|
memberName | String | null |
A String that is a name of the target object's member this method checks. This parameter is optional. |
Returns
Type | Description |
---|---|
Boolean | true, if the specified user can write an object with the specified key or this object's member; otherwise, false. |
Remarks
The following example shows how to use this method.
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Security;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl.PermissionPolicy;
using System;
// ...
public class CheckWritePermissionController : ObjectViewController<ListView, Contact> {
SecurityStrategy securityStrategy;
protected override void OnActivated() {
base.OnActivated();
securityStrategy = Application.GetSecurityStrategy();
View.CurrentObjectChanged += View_CurrentObjectChanged;
}
private void View_CurrentObjectChanged(object sender, EventArgs e) {
Department department = ViewCurrentObject.Department;
if (department != null) {
object key = ObjectSpace.GetKeyValue(department);
foreach (IPermissionPolicyUser user in ObjectSpace.GetObjects<PermissionPolicyUser>()) {
if (!securityStrategy.CanWriteByUser(user, typeof(Department), ObjectSpace, key, nameof(Department.Office))) {
// ...
}
}
}
}
}
See Also
Feedback