Refactor auth sources

This commit is contained in:
Shane Kilkelly 2017-10-12 10:57:11 +01:00
parent 1a4ffe7708
commit 6e09165452
4 changed files with 17 additions and 15 deletions

View file

@ -0,0 +1,4 @@
module.exports =
INVITE: 'invite'
TOKEN: 'token'
OWNER: 'owner'

View file

@ -10,11 +10,7 @@ PublicAccessLevels = require "../Authorization/PublicAccessLevels"
Errors = require "../Errors/Errors"
EmailHelper = require "../Helpers/EmailHelper"
ProjectEditorHandler = require "../Project/ProjectEditorHandler"
Sources =
INVITE: 'invite'
TOKEN: 'token'
OWNER: 'owner'
Sources = require "../Authorization/Sources"
module.exports = CollaboratorsHandler =

View file

@ -21,6 +21,7 @@ PrivilegeLevels = require("../Authorization/PrivilegeLevels")
AuthenticationController = require("../Authentication/AuthenticationController")
PackageVersions = require("../../infrastructure/PackageVersions")
AnalyticsManager = require "../Analytics/AnalyticsManager"
Sources = require "../Authorization/Sources"
module.exports = ProjectController =
@ -309,28 +310,28 @@ module.exports = ProjectController =
_buildProjectList: (ownedProjects, readAndWriteProjects, readOnlyProjects, tokenReadAndWriteProjects, tokenReadOnlyProjects)->
projects = []
for project in ownedProjects
projects.push ProjectController._buildProjectViewModel(project, "owner")
projects.push ProjectController._buildProjectViewModel(project, "owner", Sources.OWNER)
# Invite-access
for project in readAndWriteProjects
projects.push ProjectController._buildProjectViewModel(project, "readWrite")
projects.push ProjectController._buildProjectViewModel(project, "readWrite", Sources.INVITE)
for project in readOnlyProjects
projects.push ProjectController._buildProjectViewModel(project, "readOnly")
projects.push ProjectController._buildProjectViewModel(project, "readOnly", Sources.INVITE)
# Token-access
for project in tokenReadAndWriteProjects
projects.push ProjectController._buildProjectViewModel(project, "tokenReadAndWrite")
projects.push ProjectController._buildProjectViewModel(project, "readAndWrite", Sources.TOKEN)
for project in tokenReadOnlyProjects
projects.push ProjectController._buildProjectViewModel(project, "tokenReadOnly")
projects.push ProjectController._buildProjectViewModel(project, "readOnly", Sources.TOKEN)
return projects
_buildProjectViewModel: (project, accessLevel) ->
_buildProjectViewModel: (project, accessLevel, source) ->
tokens =
readOnly: ''
readAndWrite: ''
if project.tokens?
if accessLevel in ['tokenReadAndWrite', 'owner']
if accessLevel == 'owner' || (accessLevel == 'readAndWrite' && source == 'token')
tokens.readAndWrite = project.tokens.readAndWrite
if accessLevel in ['tokenReadOnly', 'owner']
if accessLevel == 'owner' || (accessLevel == 'readOnly' && source == 'token')
tokens.readOnly = project.tokens.readOnly
model = {
id: project._id
@ -338,6 +339,7 @@ module.exports = ProjectController =
lastUpdated: project.lastUpdated
publicAccessLevel: project.publicAccesLevel
accessLevel: accessLevel
source: source
archived: !!project.archived
owner_ref: project.owner_ref
tokens: tokens

View file

@ -456,9 +456,9 @@ define [
App.controller "ProjectListItemController", ($scope) ->
$scope.projectLink = (project) ->
if project.accessLevel == 'tokenReadAndWrite'
if project.accessLevel == 'readAndWrite' and project.source == 'token'
"/#{project.tokens.readAndWrite}"
else if project.accessLevel == 'tokenReadOnly'
else if project.accessLevel == 'readOnly' and project.source == 'token'
"/read/#{project.tokens.readOnly}"
else
"/project/#{project.id}"