Skip to content

Commit 30ae7de

Browse files
author
Maksym Mykhailenko
committed
Merge branch 'develop' into feature/bulk-milestone-updates
2 parents 436e8a7 + 95e1638 commit 30ae7de

File tree

17 files changed

+406
-240
lines changed

17 files changed

+406
-240
lines changed

.eslintignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
config/local.js
22
config/mock.local.js
33
config/m2m.local.js
4-
local/seed/
4+
scripts/import-from-api/
55
node_modules
66
dist
77
.ebextensions

README.md

Lines changed: 139 additions & 98 deletions
Large diffs are not rendered by default.

config/development.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,8 @@
22
"pubsubQueueName": "dev.project.service",
33
"pubsubExchangeName": "dev.projects",
44
"attachmentsS3Bucket": "topcoder-dev-media",
5-
"connectProjectsUrl": "https://connect.topcoder-dev.com/projects/"
5+
"connectProjectsUrl": "https://connect.topcoder-dev.com/projects/",
6+
"fileServiceEndpoint": "https://api.topcoder-dev.com/v3/files/",
7+
"connectProjectsUrl": "https://connect.topcoder-dev.com/projects/",
8+
"memberServiceEndpoint": "https://api.topcoder-dev.com/v3/members"
69
}

docs/guides/architercture/architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,4 @@ payload: {
7373
"updatedBy": 1,
7474
},
7575
}
76-
```
76+
```
104 KB
Loading
182 KB
Loading
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Permissions Guide
2+
3+
What kind of permissions we have, how they work and how to use them.
4+
5+
- [Overview](#overview)
6+
- [Topcoder Roles](#topcoder-roles)
7+
- [Project Role](#project-role)
8+
- [How to Use](#how-to-use)
9+
- [References](#references)
10+
11+
## Overview
12+
13+
Every user may have 2 kind of roles: **Topcoder Roles** and **Project Role**.
14+
15+
### Topcoder Roles
16+
17+
These roles are assigned to user accounts. User may have several **Topcoder Roles**. See [the list of all Topcoder Roles](https://github.com/topcoder-platform/tc-project-service/blob/develop/src/constants.js#L55-L69) which we use in Topcoder Project Service.
18+
19+
<img src="./images/topcoder-roles.png" width="689">
20+
21+
By default every user has one role `Topcoder User`, generally this means that such a user is either **customer** or **community member** (freelancer).
22+
23+
### Project Role
24+
25+
When user joins some project and become a member of the project, such a user has one **Project Role** inside that project. One user may have different **Project Role** in different projects. See [the list of all Project Roles](https://github.com/topcoder-platform/tc-project-service/blob/develop/src/constants.js#L23-L33) which we use in Topcoder Project Service.
26+
27+
<img src="./images/project-roles.png" width="411">
28+
29+
## How to Use
30+
31+
Let's say you would like to add a new place in code where you want to check user roles/permissions. Please, follow the next guide:
32+
33+
1. Check if we already have defined permission for your case in the [permissions list](https://htmlpreview.github.io/?https://github.com/topcoder-platform/tc-project-service/blob/develop/docs/permissions.html).
34+
35+
2. If you cannot find the permission you need, add new permission to the file https://github.com/topcoder-platform/tc-project-service/blob/develop/src/permissions/constants.js.
36+
37+
- Follow the guides on how to add a new permission in the header of this file.
38+
39+
3. After you add a new permission, regenerate [permissions list](https://htmlpreview.github.io/?https://github.com/topcoder-platform/tc-project-service/blob/develop/docs/permissions.html) by running `npm run generate:doc:permissions`.
40+
41+
4. There are 2 places where you would usually check permissions:
42+
1. Check if user can call some endpoint (https://github.com/topcoder-platform/tc-project-service/blob/develop/src/permissions/index.js):
43+
44+
```js
45+
Authorizer.setPolicy('projectMember.view', generalPermission(PERMISSION.READ_PROJECT_MEMBER));
46+
```
47+
48+
or
49+
50+
```js
51+
Authorizer.setPolicy('projectMember.edit', generalPermission([
52+
PERMISSION.UPDATE_PROJECT_MEMBER_CUSTOMER,
53+
PERMISSION.UPDATE_PROJECT_MEMBER_NON_CUSTOMER,
54+
]));
55+
```
56+
57+
2. Inside some endpoint code:
58+
59+
```js
60+
import util from '../util';
61+
import { PERMISSION } from '../permissions/constants';
62+
63+
(req, res, next) => {
64+
...
65+
if (hasPermissionByReq(permission, req)) {
66+
...
67+
}
68+
...
69+
}
70+
```
71+
72+
## References
73+
74+
- [Permissions list](https://htmlpreview.github.io/?https://github.com/topcoder-platform/tc-project-service/blob/develop/docs/permissions.html)
75+
76+
- [Permissions list source](https://github.com/topcoder-platform/tc-project-service/blob/develop/src/permissions/constants.js)

local/docker-compose.yml

Lines changed: 0 additions & 25 deletions
This file was deleted.

local/full/docker-compose.yml

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
version: "2"
22
services:
33
jsonserver:
4-
extends:
5-
file: ../docker-compose.yml
6-
service: jsonserver
4+
build: "../mock-services"
5+
ports:
6+
- "3001:3001"
77
db:
8-
extends:
9-
file: ../docker-compose.yml
10-
service: db
8+
build: "../postgres-db"
9+
ports:
10+
- "5432:5432"
1111
environment:
12+
- POSTGRES_PASSWORD=mysecretpassword
13+
- POSTGRES_USER=coder
1214
- POSTGRES_MULTIPLE_DATABASES=projectsdb,projectsdb_test,tc_notifications
1315
esearch:
14-
extends:
15-
file: ../docker-compose.yml
16-
service: esearch
16+
image: "elasticsearch:2.3"
17+
ports:
18+
- "9200:9200"
19+
- "9300:9300"
1720
queue:
18-
extends:
19-
file: ../docker-compose.yml
20-
service: queue
21+
image: "rabbitmq:3-management"
22+
restart: always
23+
ports:
24+
- "5672:5672"
25+
- "15672:15672"
2126
zookeeper:
2227
image: wurstmeister/zookeeper
2328
ports:

local/light/docker-compose.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: "2"
2+
services:
3+
jsonserver:
4+
extends:
5+
file: ../full/docker-compose.yml
6+
service: jsonserver
7+
8+
db:
9+
extends:
10+
file: ../full/docker-compose.yml
11+
service: db
12+
environment:
13+
- POSTGRES_MULTIPLE_DATABASES=projectsdb,projectsdb_test
14+
15+
esearch:
16+
extends:
17+
file: ../full/docker-compose.yml
18+
service: esearch
19+
20+
queue:
21+
extends:
22+
file: ../full/docker-compose.yml
23+
service: queue

0 commit comments

Comments
 (0)