Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
c7546c3
Add [auth|security]:checkRights
Yoann-Abbes Dec 16, 2020
ed496e5
fix snippets
Yoann-Abbes Dec 16, 2020
9422b6d
Update doc/7/controllers/auth/check-rights/index.md
Yoann-Abbes Dec 18, 2020
d1ec51f
Update doc/7/controllers/auth/check-rights/index.md
Yoann-Abbes Dec 24, 2020
5ac5b6e
Update doc/7/controllers/auth/check-rights/index.md
Yoann-Abbes Dec 24, 2020
71c3153
Update doc/7/controllers/auth/check-rights/index.md
Yoann-Abbes Dec 24, 2020
c97b18a
update doc and variables names
Yoann-Abbes Dec 24, 2020
25149cf
Update doc/7/controllers/auth/check-rights/snippets/check-rights.js
Yoann-Abbes Dec 29, 2020
da99751
Update doc/7/controllers/auth/check-rights/index.md
Yoann-Abbes Dec 29, 2020
964eef3
Update doc/7/controllers/security/check-rights/index.md
Yoann-Abbes Dec 29, 2020
f55d5f7
Update doc/7/controllers/security/check-rights/snippets/check-rights.…
Yoann-Abbes Dec 29, 2020
6d45dd3
Update doc/7/controllers/security/check-rights/snippets/check-rights.js
Yoann-Abbes Dec 29, 2020
d050e0f
Update src/controllers/Security.js
Yoann-Abbes Dec 29, 2020
4c7bcd4
Update src/controllers/Security.js
Yoann-Abbes Dec 29, 2020
e42bec1
Update doc/7/controllers/security/check-rights/snippets/check-rights.js
Yoann-Abbes Dec 29, 2020
6e81c01
Update doc/7/controllers/security/check-rights/snippets/check-rights.js
Yoann-Abbes Dec 29, 2020
2b5d0a7
Update doc/7/controllers/security/check-rights/index.md
Yoann-Abbes Dec 29, 2020
6124628
Update doc/7/controllers/auth/check-rights/index.md
Yoann-Abbes Dec 29, 2020
93a4fa3
Update doc/7/controllers/auth/check-rights/index.md
Yoann-Abbes Dec 29, 2020
a477906
Update doc/7/controllers/auth/check-rights/index.md
Yoann-Abbes Dec 29, 2020
793abfa
Update doc/7/controllers/security/check-rights/index.md
Yoann-Abbes Dec 29, 2020
d15ee9d
Update doc/7/controllers/security/check-rights/index.md
Yoann-Abbes Dec 29, 2020
570cbe8
Update src/controllers/Auth.ts
Yoann-Abbes Dec 29, 2020
0db5baa
Update src/controllers/Security.js
Yoann-Abbes Dec 29, 2020
481e0ff
Update src/controllers/Security.js
Yoann-Abbes Dec 29, 2020
fae481f
requested changes @aschen
Yoann-Abbes Dec 29, 2020
a8f2ea9
update doc
Yoann-Abbes Dec 29, 2020
1e38014
Update src/controllers/Auth.ts
Aschen Jan 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions doc/7/controllers/auth/check-rights/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
code: true
type: page
title: checkRights
description: Checks if an API action can be executed by the current user
---

# checkRights

<SinceBadge version="Kuzzle 2.8.0"/>
<SinceBadge version="auto-version"/>

Checks if the provided API request can be executed by the current logged user.

---

```js
checkRights(requestPayload)
```

| Property | Type | Description |
|--- |--- |--- |
| `requestPayload` | <pre>object</pre> | Contains a [RequestPayload](/core/2/api/payloads/request) |

## `requestPayload`

The [RequestPayload](/core/2/api/payloads/request) must contains at least the following properties:

- `controller`: API controller
- `action`: API action

---

## Resolves

A boolean telling whether the provided request would have been allowed or not.

## Usage

<<< ./snippets/check-rights.js
19 changes: 19 additions & 0 deletions doc/7/controllers/auth/check-rights/snippets/check-rights.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
const requestPayload = {
controller: 'document',
action: 'create',
index: 'nyc-open-data',
collection: 'yellow-taxi',
body: {
name: 'Melis'
}
}

try {
const result = await kuzzle.auth.checkRights(requestPayload);
console.log(result);
/*
true
*/
} catch (error) {
console.error(error.message);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: auth#checkRights
description: Checks if an API action can be executed by the current user
hooks:
before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}'
after: curl -X DELETE kuzzle:7512/users/foo
template: default
expected: true
40 changes: 40 additions & 0 deletions doc/7/controllers/security/check-rights/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
code: true
type: page
title: checkRights
description: Checks if an API action can be executed by a user
---

# checkRights

<SinceBadge version="2.8.0"/>
<SinceBadge version="auto-version"/>
Checks if the provided API request can be executed by a user.

---

```js
checkRights(kuid, requestPayload)
```

| Property | Type | Description |
|--- |--- |--- |
| `kuid` | <pre>string</pre> | User [kuid](/core/2/guides/main-concepts/authentication#kuzzle-user-identifier-kuid) |
| `requestPayload` | <pre>object</pre> | Contains a [RequestPayload](/core/2/api/payloads/request) |

## `requestPayload`

The [RequestPayload](/core/2/api/payloads/request) must contains at least the following properties:

- `controller`: API controller
- `action`: API action

---

## Resolves

A boolean telling whether the provided request would have been allowed or not

## Usage

<<< ./snippets/check-rights.js
19 changes: 19 additions & 0 deletions doc/7/controllers/security/check-rights/snippets/check-rights.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
const requestPayload = {
controller: 'document',
action: 'create',
index: 'nyc-open-data',
collection: 'yellow-taxi',
body: {
name: 'Melis'
}
}

try {
const allowed = await kuzzle.security.checkRights('foo', requestPayload);
console.log(allowed);
/*
true
*/
} catch (error) {
console.error(error.message);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: security#checkRights
description: Checks if an API action can be executed by a user
hooks:
before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}'
after: curl -X DELETE kuzzle:7512/users/foo
template: default
expected: true
18 changes: 18 additions & 0 deletions src/controllers/Auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,24 @@ export class AuthController extends BaseController {
.then(response => response.result);
}

/**
* Checks if an API action can be executed by the current user
*
* @see https://docs.kuzzle.io/sdk/js/7/controllers/auth/check-rights
* @param requestPayload Request to check
*/
checkRights (
requestPayload: JSONObject
): Promise<boolean> {

const request = {
body: requestPayload,
action: 'checkRights'
};
return this.query(request)
.then(response => response.result.allowed);
}

/**
* Deletes an API key for the currently loggued user.
*
Expand Down
16 changes: 16 additions & 0 deletions src/controllers/Security.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,22 @@ class SecurityController extends BaseController {
.then(response => response.result);
}

/**
* Checks if an API action can be executed by the current user
*
* @param {String} userId - User kuid
* @param {Object} requestPayload - Request to check
*/
checkRights(kuid, requestPayload) {
const request = {
userId: kuid,
body: requestPayload,
action: 'checkRights'
};
return this.query(request)
.then(response => response.result.allowed);
}

/**
* Deletes an user API key.
*
Expand Down