|
|
@@ -1,5 +1,6 @@
|
|
|
let AuthorizationManager
|
|
|
const CollaboratorsGetter = require('../Collaborators/CollaboratorsGetter')
|
|
|
+const CollaboratorsHandler = require('../Collaborators/CollaboratorsHandler')
|
|
|
const ProjectGetter = require('../Project/ProjectGetter')
|
|
|
const { User } = require('../../models/User')
|
|
|
const PrivilegeLevels = require('./PrivilegeLevels')
|
|
|
@@ -15,6 +16,32 @@ module.exports = AuthorizationManager = {
|
|
|
)
|
|
|
},
|
|
|
|
|
|
+ isRestrictedUserForProject(userId, projectId, callback) {
|
|
|
+ this.getPrivilegeLevelForProject(
|
|
|
+ userId,
|
|
|
+ projectId,
|
|
|
+ null,
|
|
|
+ (err, privilegeLevel) => {
|
|
|
+ if (err) {
|
|
|
+ return callback(err)
|
|
|
+ }
|
|
|
+ CollaboratorsHandler.userIsTokenMember(
|
|
|
+ userId,
|
|
|
+ projectId,
|
|
|
+ (err, isTokenMember) => {
|
|
|
+ if (err) {
|
|
|
+ return callback(err)
|
|
|
+ }
|
|
|
+ callback(
|
|
|
+ null,
|
|
|
+ this.isRestrictedUser(userId, privilegeLevel, isTokenMember)
|
|
|
+ )
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+
|
|
|
getPublicAccessLevel(projectId, callback) {
|
|
|
if (!ObjectId.isValid(projectId)) {
|
|
|
return callback(new Error('invalid project id'))
|