avoid introspection to get available roles as admin

This commit is contained in:
Moriz Wahl 2021-02-16 13:12:18 +01:00
parent dabc36d1b3
commit a5df793c55
6 changed files with 13 additions and 9 deletions

View File

@ -122,6 +122,7 @@ export default shield(
MyInviteCodes: isAuthenticated,
isValidInviteCode: allow,
queryLocations: isAuthenticated,
availableRoles: isAdmin,
},
Mutation: {
'*': deny,

View File

@ -0,0 +1,7 @@
export default {
Query: {
availableRoles: async (_parent, args, context, _resolveInfo) => {
return ['admin', 'moderator', 'user']
},
},
}

View File

@ -2,4 +2,4 @@ enum UserGroup {
admin
moderator
user
}
}

View File

@ -170,6 +170,7 @@ type Query {
filter: _UserFilter
): [User]
availableRoles: [UserGroup]!
mutedUsers: [User]
blockedUsers: [User]
isLoggedIn: Boolean!

View File

@ -3,12 +3,7 @@ import gql from 'graphql-tag'
export const FetchAllRoles = () => {
return gql`
query {
__type(name: "UserGroup") {
name
enumValues {
name
}
}
availableRoles
}
`
}

View File

@ -178,8 +178,8 @@ export default {
query() {
return FetchAllRoles()
},
update({ __type }) {
return __type.enumValues.map((item) => item.name)
update({ availableRoles }) {
return availableRoles
},
},
},