diff --git a/packages/component-user/resolvers.js b/packages/component-user/resolvers.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0af14ced5b4229ad0e61205a893ab24dc3a1e5b4 100644
--- a/packages/component-user/resolvers.js
+++ b/packages/component-user/resolvers.js
@@ -0,0 +1,32 @@
+const Chance = require('chance')
+
+const chance = new Chance()
+const resolvers = {
+  Mutation: {
+    async addUserWithConfirmationEmail(_, { input }, ctx) {
+      console.log('ROLE:', input.role)
+
+      input.notifications = {
+        email: {
+          system: true,
+          user: true,
+        },
+      }
+
+      input.accessTokens = {
+        confirmation: chance.hash(),
+        unsubscribe: chance.hash(),
+      }
+
+      try {
+        const user = await ctx.connectors.User.create(input, ctx)
+        console.log(user)
+        return user
+      } catch (e) {
+        console.log(e)
+      }
+    },
+  },
+}
+
+module.exports = resolvers
diff --git a/packages/component-user/typeDefs.js b/packages/component-user/typeDefs.js
index 3583a27be3d3a91e4f8aeb6de76bb57b59a1a001..c6f217394d4a36380a3c33a8050935d8d3ff3d05 100644
--- a/packages/component-user/typeDefs.js
+++ b/packages/component-user/typeDefs.js
@@ -17,15 +17,22 @@ module.exports = `
   }
 
   extend input UserInput {
-    isActive: Boolean
-    isConfirmed: Boolean
     firstName: String
     lastName: String
     title: String
     country: String
     affiliation: String
-    admin: Boolean
-    editorInChief: Boolean
-    handlingEditor: Boolean
+    role: AllowedRole!
+  }
+
+  extend type Mutation {
+    addUserWithConfirmationEmail(input: UserInput!): User
+  }
+
+  enum AllowedRole {
+    editorInChief
+    handlingEditor
+    admin
+    author
   }
 `
diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js
index 13eed68fde3e75c0cea41cde6d77d128783590d3..a56d232c5df14e49c1bffa08de1ce55e0804543e 100644
--- a/packages/xpub-faraday/config/default.js
+++ b/packages/xpub-faraday/config/default.js
@@ -1,9 +1,9 @@
 require('dotenv').config()
 const path = require('path')
-const get = require('lodash/get')
 const logger = require('winston')
 const components = require('./components.json')
 const journalConfig = require('../app/config/journal')
+const { merge, get } = require('lodash')
 
 const users = require('../../component-user')
 
@@ -49,7 +49,7 @@ module.exports = {
     enableExperimentalGraphql: true,
     graphiql: true,
     typeDefs: `${users.typeDefs}`,
-    // resolvers,
+    resolvers: merge({}, users.resolvers),
   },
   'pubsweet-client': {
     API_ENDPOINT: '/api',