Skip to main content
.NET 6.0+

IsGrantedExtensions.CanWriteByRole(SecurityStrategy, IPermissionPolicyRole, Type, String) Method

Checks whether the current user can write objects of the specified type or their member.

Namespace: DevExpress.ExpressApp.Security

Assembly: DevExpress.ExpressApp.Security.v24.1.dll

Declaration

public static bool CanWriteByRole(
    this SecurityStrategy security,
    IPermissionPolicyRole targetRole,
    Type type,
    string memberName = null
)

Parameters

Name Type Description
security SecurityStrategy

A SecurityStrategy object that specifies an application’s Security Strategy.

targetRole IPermissionPolicyRole

An IPermissionPolicyRole object that is a role this method checks.

type Type

A Type of objects this method checks.

Optional Parameters

Name Type Default Description
memberName String null

A String that is a name of an objects’ member this method checks. This parameter is optional.

Returns

Type Description
Boolean

true, if the current user can write objects of the specified type or their 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) {
        foreach (IPermissionPolicyRole role in ObjectSpace.GetObjects<PermissionPolicyRole>()) {
            if (!securityStrategy.CanWriteByRole(role, typeof(Department), nameof(Department.Office))) {
                // ...
            }
        }
    }
}
See Also