feat: account verification + mail config in admin area

This commit is contained in:
Nicolas Giard
2018-12-22 16:18:16 -05:00
parent 78ae137f48
commit 2b98a5f27a
16 changed files with 849 additions and 4 deletions

View File

@@ -0,0 +1,46 @@
const _ = require('lodash')
const graphHelper = require('../../helpers/graph')
/* global WIKI */
module.exports = {
Query: {
async mail() { return {} }
},
Mutation: {
async mail() { return {} }
},
MailQuery: {
async config(obj, args, context, info) {
return WIKI.config.mail
}
},
MailMutation: {
async updateConfig(obj, args, context) {
try {
WIKI.config.mail = {
senderName: args.senderName,
senderEmail: args.senderEmail,
host: args.host,
port: args.port,
secure: args.secure,
user: args.user,
pass: args.pass,
useDKIM: args.useDKIM,
dkimDomainName: args.dkimDomainName,
dkimKeySelector: args.dkimKeySelector,
dkimPrivateKey: args.dkimPrivateKey,
}
await WIKI.configSvc.saveToDb(['mail'])
WIKI.mail.init()
return {
responseResult: graphHelper.generateSuccess('Mail configuration updated successfully')
}
} catch (err) {
return graphHelper.generateError(err)
}
}
}
}

View File

@@ -0,0 +1,57 @@
# ===============================================
# MAIL
# ===============================================
extend type Query {
mail: MailQuery
}
extend type Mutation {
mail: MailMutation
}
# -----------------------------------------------
# QUERIES
# -----------------------------------------------
type MailQuery {
config: MailConfig @auth(requires: ["manage:system"])
}
# -----------------------------------------------
# MUTATIONS
# -----------------------------------------------
type MailMutation {
updateConfig(
senderName: String!
senderEmail: String!
host: String!
port: Int!
secure: Boolean!
user: String!
pass: String!
useDKIM: Boolean!
dkimDomainName: String!
dkimKeySelector: String!
dkimPrivateKey: String!
): DefaultResponse @auth(requires: ["manage:system"])
}
# -----------------------------------------------
# TYPES
# -----------------------------------------------
type MailConfig {
senderName: String!
senderEmail: String!
host: String!
port: Int!
secure: Boolean!
user: String!
pass: String!
useDKIM: Boolean!
dkimDomainName: String!
dkimKeySelector: String!
dkimPrivateKey: String!
}