blob: 15136d1886d59228fb693da0fb8c7eb3b5b963d4 [file] [view]
---
id: data-permissions
title: Data Permissions
---
We have two solutions for data permissions (filtering). Using implicit assignment APIs. Or just use BatchEnforce() API.
### 1. Query implicit roles or permissions
When a user inherits a role or permission via RBAC hierarchy instead of directly assigning them in a policy rule, we call such type of assignment as ``implicit``.
To query such implicit relations, you need to use these 2 APIs: ``GetImplicitRolesForUser()`` and ``GetImplicitPermissionsForUser`` instead of ``GetRolesForUser()`` and ``GetPermissionsForUser``. For more details, please see [this GitHub issue](https://github.com/casbin/casbin/issues/137).
### 2. Use `BatchEnforce()`
BatchEnforce enforces each request and returns result in a bool array
For example:
<!--DOCUSAURUS_CODE_TABS-->
<!--Go-->
```go
boolArray, err := e.BatchEnforce(requests)
```
<!--Node.js-->
```typescript
const boolArray = await e.batchEnforce(requests);
```
<!--Java-->
```java
List<Boolean> boolArray = e.batchEnforce(requests);
```
<!--END_DOCUSAURUS_CODE_TABS-->