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.
55 lines
1.0 KiB
55 lines
1.0 KiB
'use strict'
|
|
|
|
/* global wiki */
|
|
|
|
const gql = require('graphql')
|
|
|
|
module.exports = {
|
|
Query: {
|
|
rights(obj, args, context, info) {
|
|
return wiki.db.Right.findAll({ where: args })
|
|
}
|
|
},
|
|
Mutation: {
|
|
addRightToGroup(obj, args) {
|
|
return wiki.db.Group.findById(args.groupId).then(grp => {
|
|
if (!grp) {
|
|
throw new gql.GraphQLError('Invalid Group ID')
|
|
}
|
|
return wiki.db.Right.create({
|
|
path: args.path,
|
|
role: args.role,
|
|
exact: args.exact,
|
|
allow: args.allow,
|
|
group: grp
|
|
})
|
|
})
|
|
},
|
|
removeRightFromGroup(obj, args) {
|
|
return wiki.db.Right.destroy({
|
|
where: {
|
|
id: args.rightId
|
|
},
|
|
limit: 1
|
|
})
|
|
},
|
|
modifyRight(obj, args) {
|
|
return wiki.db.Right.update({
|
|
path: args.path,
|
|
role: args.role,
|
|
exact: args.exact,
|
|
allow: args.allow
|
|
}, {
|
|
where: {
|
|
id: args.id
|
|
}
|
|
})
|
|
}
|
|
},
|
|
Right: {
|
|
group(rt) {
|
|
return rt.getGroup()
|
|
}
|
|
}
|
|
}
|