mirror of https://github.com/Requarks/wiki.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
992 B
40 lines
992 B
const _ = require('lodash')
|
|
const fs = require('fs-extra')
|
|
const path = require('path')
|
|
|
|
/* global wiki */
|
|
|
|
module.exports = {
|
|
Query: {
|
|
authentication(obj, args, context, info) {
|
|
switch (args.mode) {
|
|
case 'active':
|
|
let strategies = _.chain(wiki.auth.strategies).map(str => {
|
|
return {
|
|
key: str.key,
|
|
title: str.title,
|
|
useForm: str.useForm
|
|
}
|
|
}).sortBy(['title']).value()
|
|
let localStrategy = _.remove(strategies, str => str.key === 'local')
|
|
return _.concat(localStrategy, strategies)
|
|
case 'all':
|
|
|
|
break
|
|
default:
|
|
return null
|
|
}
|
|
}
|
|
},
|
|
Mutation: {},
|
|
AuthenticationProvider: {
|
|
icon (ap, args) {
|
|
return fs.readFileAsync(path.join(wiki.ROOTPATH, `assets/svg/auth-icon-${ap.key}.svg`), 'utf8').catch(err => {
|
|
if (err.code === 'ENOENT') {
|
|
return null
|
|
}
|
|
throw err
|
|
})
|
|
}
|
|
}
|
|
}
|