diff --git a/services/web/app/coffee/Features/Authorization/Sources.coffee b/services/web/app/coffee/Features/Authorization/Sources.coffee new file mode 100644 index 0000000000..149d296211 --- /dev/null +++ b/services/web/app/coffee/Features/Authorization/Sources.coffee @@ -0,0 +1,4 @@ +module.exports = + INVITE: 'invite' + TOKEN: 'token' + OWNER: 'owner' diff --git a/services/web/app/coffee/Features/Collaborators/CollaboratorsHandler.coffee b/services/web/app/coffee/Features/Collaborators/CollaboratorsHandler.coffee index 5d19a612dc..782340d861 100644 --- a/services/web/app/coffee/Features/Collaborators/CollaboratorsHandler.coffee +++ b/services/web/app/coffee/Features/Collaborators/CollaboratorsHandler.coffee @@ -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 = diff --git a/services/web/app/coffee/Features/Project/ProjectController.coffee b/services/web/app/coffee/Features/Project/ProjectController.coffee index 7765bad0dc..47b1e6914b 100644 --- a/services/web/app/coffee/Features/Project/ProjectController.coffee +++ b/services/web/app/coffee/Features/Project/ProjectController.coffee @@ -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 diff --git a/services/web/public/coffee/main/project-list/project-list.coffee b/services/web/public/coffee/main/project-list/project-list.coffee index 64fe9a93ab..8e3af1140f 100644 --- a/services/web/public/coffee/main/project-list/project-list.coffee +++ b/services/web/public/coffee/main/project-list/project-list.coffee @@ -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}"