Skip to main content
.NET 6.0+

IsGrantedExtensions.CanDeleteByRole(SecurityStrategy, IPermissionPolicyRole, Object) Method

Checks whether the specified role allows deleting the specified object.

Namespace: DevExpress.ExpressApp.Security

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

Declaration

public static bool CanDeleteByRole(
    this SecurityStrategy security,
    IPermissionPolicyRole targetRole,
    object targetObject
)

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.

targetObject Object

An Object this method checks.

Returns

Type Description
Boolean

true, the specified role allows deleting the specified object; otherwise, false.

Remarks

Important

This overload of the CanDeleteByRole method may reduce performance and cause incorrect behavior in some usage scenarios. We recommend that you always use the CanDeleteByRole method’s overloads that accept an Object Space as a parameter to check permissions for a specific object.

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 CheckDeletePermissionController : ViewController<ListView> {
    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.CanDeleteByRole(role, View.CurrentObject)) {
                // ...
            }
        }
    }
}
See Also