diff --git a/packages/component-invite/src/controllers/assignCollectionRole.js b/packages/component-invite/src/controllers/assignCollectionRole.js
index be8f7f8d644dbd47a791cdcec7e65f633bdf6bd6..50c1e31f9d3b8686b753012e226a4f974662e5fd 100644
--- a/packages/component-invite/src/controllers/assignCollectionRole.js
+++ b/packages/component-invite/src/controllers/assignCollectionRole.js
@@ -27,6 +27,10 @@ module.exports = async (
   }
 
   if (reqUser.handlingEditor === true) {
+    if (reqUser.email === email) {
+      logger.error(`${reqUser.email} tried to invite his own email`)
+      return res.status(400).json({ error: 'Cannot invite yourself' })
+    }
     if (reqUser.teams === undefined) {
       return res.status(403).json({
         error: `Handling Editor ${reqUser.email} is not part of any teams`,
@@ -48,6 +52,11 @@ module.exports = async (
     }
   }
 
+  if (reqUser.editorInChief === true && email === reqUser.email) {
+    logger.error(`${reqUser.email} tried to invite his own email`)
+    return res.status(400).json({ error: 'Cannot invite yourself' })
+  }
+
   let collection
   try {
     collection = await models.Collection.find(collectionId)
@@ -69,9 +78,12 @@ module.exports = async (
     )
     // get updated user from DB
     user = await models.User.findByEmail(email)
-    if (role === 'coAuthor') {
+    if (role === 'author') {
+      if (collection.owners[0].id === user.id) {
+        return res.status(200).json(user)
+      }
       try {
-        await mailService.setupAssignEmail(user.email, 'assign-coauthor', url)
+        await mailService.setupAssignEmail(user.email, 'assign-author', url)
 
         return res.status(200).json(user)
       } catch (e) {
diff --git a/packages/component-invite/src/routes/getCollectionUsers.js b/packages/component-invite/src/routes/getCollectionUsers.js
index 94570732b4731e170f6e9d6a076258631d1e2de7..a08cdba076c3130d940a6344cad85c2a17588967 100644
--- a/packages/component-invite/src/routes/getCollectionUsers.js
+++ b/packages/component-invite/src/routes/getCollectionUsers.js
@@ -16,12 +16,6 @@ module.exports = models => async (req, res) => {
     return
   }
 
-  const reqUser = await models.User.find(req.user)
-  if (!reqUser.editorInChief) {
-    res.status(400).json({ error: 'The request user must be Editor in Chief' })
-    return
-  }
-
   const { collectionId } = req.params
   try {
     await models.Collection.find(collectionId)
diff --git a/packages/component-invite/src/routes/postInvite.js b/packages/component-invite/src/routes/postInvite.js
index b3b61a0db11910508d48a2052530bf60fb6d192a..4c301272ee64c421530d2098fcdfbe22a79ae9b0 100644
--- a/packages/component-invite/src/routes/postInvite.js
+++ b/packages/component-invite/src/routes/postInvite.js
@@ -22,11 +22,7 @@ module.exports = models => async (req, res) => {
     return
   }
   const reqUser = await models.User.find(req.user)
-  if (email === reqUser.email) {
-    res.status(400).json({ error: 'Cannot invite yourself' })
-    logger.error(`${reqUser.email} tried to invite his own email`)
-    return
-  }
+
   const collectionId = get(req, 'params.collectionId')
   const url = `${req.protocol}://${req.get('host')}`
   if (collectionId)
@@ -41,6 +37,11 @@ module.exports = models => async (req, res) => {
       req.body,
     )
 
+  if (email === reqUser.email) {
+    res.status(400).json({ error: 'Cannot invite yourself' })
+    logger.error(`${reqUser.email} tried to invite his own email`)
+    return
+  }
   if (reqUser.admin)
     return require('../controllers/inviteGlobalRole')(
       req.body,
diff --git a/packages/component-mail-service/src/templates/assign-coauthor.html b/packages/component-mail-service/src/templates/assign-author.html
similarity index 100%
rename from packages/component-mail-service/src/templates/assign-coauthor.html
rename to packages/component-mail-service/src/templates/assign-author.html
diff --git a/packages/component-mail-service/src/templates/assign-coauthor.txt b/packages/component-mail-service/src/templates/assign-author.txt
similarity index 100%
rename from packages/component-mail-service/src/templates/assign-coauthor.txt
rename to packages/component-mail-service/src/templates/assign-author.txt
diff --git a/packages/component-mail-service/src/templates/invite-coauthor.html b/packages/component-mail-service/src/templates/invite-author.html
similarity index 100%
rename from packages/component-mail-service/src/templates/invite-coauthor.html
rename to packages/component-mail-service/src/templates/invite-author.html
diff --git a/packages/component-mail-service/src/templates/invite-coauthor.txt b/packages/component-mail-service/src/templates/invite-author.txt
similarity index 100%
rename from packages/component-mail-service/src/templates/invite-coauthor.txt
rename to packages/component-mail-service/src/templates/invite-author.txt
diff --git a/packages/xpub-faraday/config/authsome.js b/packages/xpub-faraday/config/authsome.js
index 2adf7a0792e6d70a0e26f8a97b8f7feb7df758f1..abd7c34913f8c9afb37bdd96fc98f98e040ad010 100644
--- a/packages/xpub-faraday/config/authsome.js
+++ b/packages/xpub-faraday/config/authsome.js
@@ -3,8 +3,8 @@ const pickBy = require('lodash/pickBy')
 const omit = require('lodash/omit')
 
 async function teamPermissions(user, operation, object, context) {
-  const permissions = ['handlingEditor', 'coAuthor']
-  const teams = Promise.all(
+  const permissions = ['handlingEditor', 'author']
+  const teams = await Promise.all(
     user.teams
       .map(async teamId => {
         const team = await context.models.Team.find(teamId)
diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js
index f279c3df72cfd495e162414d0527b0a842df446a..9671e5bef74fdb508ed65eec3fcb22edc1a1feb7 100644
--- a/packages/xpub-faraday/config/default.js
+++ b/packages/xpub-faraday/config/default.js
@@ -63,12 +63,11 @@ module.exports = {
   },
   roles: {
     global: ['admin', 'editorInChief', 'author', 'handlingEditor'],
-    collection: ['handlingEditor', 'reviewer', 'coAuthor'],
+    collection: ['handlingEditor', 'reviewer', 'author'],
     inviteRights: {
-      admin: ['admin', 'editorInChief', 'author', 'handlingEditor', 'coAuthor'],
+      admin: ['admin', 'editorInChief', 'author', 'handlingEditor', 'author'],
       editorInChief: ['handlingEditor'],
       handlingEditor: ['reviewer'],
-      author: ['coAuthor'],
     },
   },
   mailer: {