mirror of https://github.com/requarks/wiki
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.
41 lines
992 B
41 lines
992 B
7 years ago
|
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
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}
|