From bb2d1c44cf123caa7a4dee317d61047872cb7484 Mon Sep 17 00:00:00 2001 From: Jonsen-92 <55470037+Jonsen-92@users.noreply.github.com> Date: Fri, 18 Dec 2020 09:12:59 +0700 Subject: [PATCH] [#6] Create Documentation Acl (#22) * [#1] Create Documentation Acl * [#6] Update documentation Acl * [#6] Update documentation Post/Add endpoint * [#6] Update documentation ACL * [#6] Update documentation ACL based on review * [#6] Update documentation ACL based on review * [#6] Update documentation ACL based on review * [#6] Update documentation ACL based on review * Revert "[#6] Update documentation ACL based on review" This reverts commit 1e95c0c3c25759f35a25e663ee17cae1204dccba. * [#6] Update documentation Employee * [#6] Update ACL Documentation based on review * [#6] Update ACL Documentation based on review v2 --- doc/acl.md | 913 ++++++++++++++++++++++++++++++++++++++++++++++ doc/acl_model.png | Bin 0 -> 52285 bytes 2 files changed, 913 insertions(+) create mode 100644 doc/acl_model.png diff --git a/doc/acl.md b/doc/acl.md index 547bbce..110f458 100644 --- a/doc/acl.md +++ b/doc/acl.md @@ -1 +1,914 @@ # ACL Module +Module | HTTP Method | URL | Description +--- | --- | --- | --- +[List](#index) | GET | /access | Get All List Access +[Add](#add) | POST | /access | Add New Record to Acos +[View](#view) | GET | /access/:id | View detail Acos by id +[Edit](#edit) | PUT | /access/:id | Edit Existing record in Acos by id +[Delete](#delete) | DELETE | /access/:id | Delete Existing record in Acos by id +[Grant](#grant) | POST | /access/grant/:id | insert new record in aros_acos. aco_id in path url. aro_id grab from header email +[Revoke](#revoke) | POST | /access/revoke/:id | remove existing record in aros_acos. aco_id in path url. aro_id grab from header email. + +## Add Access + +### Endpoint +POST /access + +### Database +![](./acl_model.png) + +### Headers +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json + + +### Request Payloads +Name | Type | Example Value +--- | --- | --- +parent_id | int | 1 +alias | int | Groups +``` +{ + "parent_id" : 1, + "alias" : "Groups", +} +``` + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +400 | Bad Request | Bad request payload +404 | Not Found | User not found in database +500 | Internal Server Error | some un-handle error in server +201 | Created | Success created new access +``` +{ + "status_code": "CDC-400", + "status_message": "Bad Request", + "data": null +} +``` + +``` +{ + "status_code": "CDC-201", + "status_message": "Created", + "data": { + "id":2, + "parent_id": 1, + "alias": "Groups", + "created": "2020-10-28T08:58:13+00:00", + "modified": "2020-10-28T08:58:13+00:00" + } +} +``` + +### Logic + using [cakephp tree](https://book.cakephp.org/4/en/orm/behaviors/tree.html) behavior to get lft and rght from parent_id + +#### Validation +- parent_id: required and not empty +- alias: required, not empty and unique + +### Scenario Test + +#### Case : Negative Case 1 + +Request Payload : empty + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "parent_id is required", + "data": null +} +``` + +#### Case : Negative Case 2 + +Request Payload : +``` +{} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "parent_id is required", + "data": null +} +``` + +#### Case : Negative Case 3 + +Request payload : +``` +{ + "parent_id": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "Parent_id is empty", + "data": null +} +``` + +#### Case : Negative Case 4 + +Request Payload : +``` +{ + "parent_id": 1 +} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "alias is required", + "data": null +} +``` + +#### Case : Negative Case 5 + +Request Payload : +``` +{ + "parent_id": 1, + "alias": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload: +``` +{ + "status_code": "cdc-400", + "status_message": " alias is empty", + "data": null +} +``` + +#### Case : Negative Case 6 + +Request Payload : +``` +{ + "parent_id": 1, + "alias": "Groups" +} +``` + +Response HTTP Status Code : 400 + +Response Payload: +``` +{ + "status_code": "cdc-400", + "status_message": " alias is already exist in acos table", + "data": null +} +``` + +#### Case : Negative Case 7 + +Request Payload : +``` +{ + "parent_id": 1, + "alias": "Groups" +} +``` + +Response HTTP Status Code : 404 + +Response Payload: +``` +{ + "status_code": "cdc-404", + "status_message": " parent_id not found in acos table", + "data": null +} +``` + +#### Case : Positive Case + +Request Payload : +``` +{ + "parent_id": 1, + "alias": "Groups" + +} +``` + +Response HTTP Status Code : 201 + +Response Payload : +``` +{ + "status_code": "CDC-201", + "status_message": "Created", + "data": { + "id":2, + "parent_id": 1, + "alias": "Groups", + "created": "2020-10-28T08:58:13+00:00", + "modified": "2020-10-28T08:58:13+00:00" + } +} +``` + +## Index + +### Endpoint +GET /access + +### Headers +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json +Email | cdc_user@gmail.com + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +404 | Not Found | User not found in database +500 | Internal Server Error | some un-handle error in server +200 | OK | OK + +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "access": { + "id": 1, + "parent_id": null, + "alias": "controllers", + "childrens": [ + { + "id":2, + "parent_id": 1, + "alias": "groups", + "childrens": [ + { + "id": 3, + "parent_id": 2, + "alias": "groups:index", + "children": null + } + ] + }, + { + "id": 6, + "parent_id": 1, + "alias": "users", + "childrens": [ + { + "id": 7, + "parent_id": 6, + "alias": "users:create", + "childrens": null + } + ] + } + ] + } + } +} + +### Logic +- if there is no email header, it get all acos in tree. +- if any email header, it get all acos which is grant to user login (you need join to aros_acos table). + +### Scenario Test + +#### Case : Positive Case 1 + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "access": { + "id": 1, + "parent_id": null, + "alias": "controllers", + "children": null + } + } +} +``` + +#### Case : Negative Case 2 + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "access": { + "id": 1, + "parent_id": null, + "alias": "controllers", + "childrens": [ + { + "id":2, + "parent_id": 1, + "alias": "groups", + "childrens": [ + { + "id": 3, + "parent_id": 2, + "alias": "groups:index", + "children": null + } + ] + }, + { + "id": 6, + "parent_id": 1, + "alias": "users", + "childrens": [ + { + "id": 7, + "parent_id": 6, + "alias": "users:create", + "childrens": null + }, + + ] + } + ] + } + } +} +``` + +## View + +### Endpoint +GET /access/:id + +### Headers +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +404 | Not Found | Access not found in database +500 | Internal Server Error | some un-handle error in server +200 | OK | OK + +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "access": { + "id":2, + "parent_id": 1, + "alias": "groups", + "childrens": [ + { + "id": 3, + "parent_id": 2, + "alias": "groups:index", + "children": null + }, + { + "id": 4, + "parent_id": 2, + "alias": "groups:view", + "children": null + } + ] + } + + } + +} + +### Scenario Test + +#### Case : Positive Case 1 + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "access": { + "id": 1, + "parent_id": null, + "alias": "controllers", + "childrens": null + } + } +} +``` + +#### Case : Positive Case 2 + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "access": { + "id": 1, + "parent_id": null, + "alias": "controllers", + "childrens": [ + { + "id":2, + "parent_id": 1, + "alias": "groups", + "childrens": [ + { + "id": 3, + "parent_id": 2, + "alias": "groups:index", + "children": null + } + ] + }, + { + "id": 6, + "parent_id": 1, + "alias": "users", + "childrens": [ + { + "id": 7, + "parent_id": 6, + "alias": "users:create", + "childrens": null + }, + + ] + } + ] + } + } +} +``` + + +## Edit + +### Endpoint +PUT /access/:id + +### Headers +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json + +### Request Payloads +Name | Type | Example Value +--- | --- | --- +parent_id | int | 2 +alias | int | Groups:index +``` +{ + "parent_id" : 2, + "alias" : "Groups:index", +} +``` + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +400 | Bad Request | Bad request payload +404 | Not Found | User not found in database +500 | Internal Server Error | some un-handle error in server +200 | OK | OK +``` +{ + "status_code": "CDC-400", + "status_message": "Bad Request", + "data": null +} +``` +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":3, + "parent_id": 2, + "alias": "Groups:index", + "created": "2020-10-28T08:58:13+00:00", + "modified": "2020-10-28T08:58:13+00:00" + } +} +``` + +### Logic + using [cakephp tree](https://book.cakephp.org/4/en/orm/behaviors/tree.html) behavior to get lft and rght from parent_id + +#### Validation +- parent_id: required and not empty +- alias: required, not empty and unique + +### Scenario Test + +#### Case : Negative Case 1 + +Request Payload : empty + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "parent_id is required", + "data": null +} +``` + +#### Case : Negative Case 2 + +Request Payload : +``` +{} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "parent_id is required", + "data": null +} +``` + +#### Case : Negative Case 3 + +Request payload : +``` +{ + "parent_id": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "Parent_id is empty", + "data": null +} +``` + +#### Case : Negative Case 4 + +Request Payload : +``` +{ + "parent_id": 2 +} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "alias is required", + "data": null +} +``` + +#### Case : Negative Case 5 + +Request Payload : +``` +{ + "parent_id": 2, + "alias": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload: +``` +{ + "status_code": "cdc-400", + "status_message": " alias is empty", + "data": null +} +``` + +#### Case : Negative Case 6 + +Request Payload : +``` +{ + "parent_id": 2, + "alias": "Groups" +} +``` + +Response HTTP Status Code : 400 + +Response Payload: +``` +{ + "status_code": "cdc-400", + "status_message": " alias is already exist in acos table", + "data": null +} +``` + +#### Case : Negative Case 7 + +Request Payload : +``` +{ + "parent_id": 2, + "alias": "Groups:index" +} +``` + +Response HTTP Status Code : 404 + +Response Payload: +``` +{ + "status_code": "cdc-404", + "status_message": " parent_id not found in acos table", + "data": null +} +``` +#### Case : Positive Case + +Request Payload : +``` +{ + "parent_id": 2, + "alias": "Groups:index" + +} +``` + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":3, + "parent_id": 2, + "alias": "Groups:index", + "created": "2020-10-28T08:58:13+00:00", + "modified": "2020-10-28T08:58:13+00:00" + } +} +``` + +## DELETE + +### Endpoint +DELETE /access/:id + +### Headers +Key | Value +--- | --- +Content-Type |* +Accept | application/json + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +403 | Forbidden | Can not be deleted +404 | Not Found | User not found in database +500 | Internal Server Error | some un-handle error in server +204 | No Content | No Content + +### Logic +- root can not be deleted. +- root alias is 'controllers'. +- root parent_id is null. +- if the node has children, it should not be deleted + +### Scenario Test + +#### Case : Negative Case 1 + +Response HTTP Status Code : 403 + +#### Case : Positive Case + +Response HTTP Status Code : 204 + + + +## GRANT + +### Endpoint +POST /access/grant/:id + +### Headers +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json +Email | cdc_user@cdcmail.com + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +400 | Bad Request | Bad request payload +404 | Not Found | User not found in database +409 | Already Exist | Access Already Exist +500 | Internal Server Error | some un-handle error in server +200 | OK | OK + +``` +{ + "status_code": "CDC-400", + "status_message": "Bad Request", + "data": null +} +``` + +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "aco_id": 1, + "aro_id": 1, + "created": "2020-10-28T08:58:13+00:00", + "modified": "2020-10-28T08:58:13+00:00" + } +} +``` + +### Logic +- aro_id grab from header email. + +### Scenario Test + +#### Case : Negative Case 1 + +Response HTTP Status Code : 404 + +Response Payload : +``` +{ + "status_code": "cdc-404", + "status_message": "id not found in acos table", + "data": null +} +``` + +#### Case : Negative Case 2 + +Response HTTP Status Code : 409 + +Response Payload : +``` +{ + "status_code": "cdc-409", + "status_message": "access already exist for this user", + "data": null +} +``` +#### Case : Positive Case + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "aco_id": 1, + "aro_id": 1, + "created": "2020-10-28T08:58:13+00:00", + "modified": "2020-10-28T08:58:13+00:00" + } +} +``` + +## REVOKE + +### Endpoint +POST /access/revoke/:id + +### Headers +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json +Email | cdc_user@cdcmail.com + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +400 | Bad Request | Bad request payload +404 | Not Found | User not found in database +500 | Internal Server Error | some un-handle error in server +200 | OK | OK + +``` +{ + "status_code": "CDC-400", + "status_message": "Bad Request", + "data": null +} +``` + +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "aco_id": 1, + "aro_id": 1, + "created": "2020-10-28T08:58:13+00:00", + "modified": "2020-10-28T08:58:13+00:00" + } +} +``` + +### Logic +- aro_id grab from header email. + +### Scenario Test + +#### Case : Negative Case + +Response HTTP Status Code : 404 + +Response Payload : +``` +{ + "status_code": "cdc-404", + "status_message": "access not found for this user", + "data": null +} +``` +#### Case : Positive Case + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "Access Revoked", + "data": null +} +``` + diff --git a/doc/acl_model.png b/doc/acl_model.png new file mode 100644 index 0000000000000000000000000000000000000000..e78217b3babd53f53069e3ca4f4e9a2c527117bc GIT binary patch literal 52285 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