AuthorizationManager.coffee 687 B

123456789101112131415
  1. module.exports = AuthorizationManager =
  2. assertClientCanViewProject: (client, callback = (error) ->) ->
  3. AuthorizationManager._assertClientHasPrivilegeLevel client, ["readOnly", "readAndWrite", "owner"], callback
  4. assertClientCanEditProject: (client, callback = (error) ->) ->
  5. AuthorizationManager._assertClientHasPrivilegeLevel client, ["readAndWrite", "owner"], callback
  6. _assertClientHasPrivilegeLevel: (client, allowedLevels, callback = (error) ->) ->
  7. client.get "privilege_level", (error, privilegeLevel) ->
  8. return callback(error) if error?
  9. allowed = (privilegeLevel in allowedLevels)
  10. if allowed
  11. callback null
  12. else
  13. callback new Error("not authorized")