feat(server): add guest mode as server info field

This commit is contained in:
Gergő Jedlicska
2023-07-27 17:30:52 +02:00
parent 7efa0f5ed0
commit 935ebaf60a
6 changed files with 28 additions and 1 deletions
@@ -15,6 +15,7 @@ type ServerInfo {
roles: [Role]!
scopes: [Scope]!
inviteOnly: Boolean
guestModeEnabled: Boolean!
version: String
}
@@ -48,4 +49,5 @@ input ServerInfoUpdateInput {
adminContact: String
termsOfService: String
inviteOnly: Boolean
guestModeEnabled: Boolean
}
@@ -1846,6 +1846,7 @@ export type ServerInfo = {
canonicalUrl?: Maybe<Scalars['String']>;
company?: Maybe<Scalars['String']>;
description?: Maybe<Scalars['String']>;
guestModeEnabled: Scalars['Boolean'];
inviteOnly?: Maybe<Scalars['Boolean']>;
name: Scalars['String'];
roles: Array<Maybe<Role>>;
@@ -1858,6 +1859,7 @@ export type ServerInfoUpdateInput = {
adminContact?: InputMaybe<Scalars['String']>;
company?: InputMaybe<Scalars['String']>;
description?: InputMaybe<Scalars['String']>;
guestModeEnabled?: InputMaybe<Scalars['Boolean']>;
inviteOnly?: InputMaybe<Scalars['Boolean']>;
name: Scalars['String'];
termsOfService?: InputMaybe<Scalars['String']>;
@@ -3652,6 +3654,7 @@ export type ServerInfoResolvers<ContextType = GraphQLContext, ParentType extends
canonicalUrl?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
company?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
guestModeEnabled?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
inviteOnly?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
roles?: Resolver<Array<Maybe<ResolversTypes['Role']>>, ParentType, ContextType>;
@@ -73,6 +73,7 @@ export type ServerConfigRecord = {
canonicalUrl: string
completed: boolean
inviteOnly: boolean
guestModeEnabled: boolean
}
export type ServerInfo = ServerConfigRecord & {
@@ -0,0 +1,16 @@
import { Knex } from 'knex'
const TABLE_NAME = 'server_config'
const COL_NAME = 'guestModeEnabled'
export async function up(knex: Knex): Promise<void> {
await knex.schema.alterTable(TABLE_NAME, (table) => {
table.boolean(COL_NAME).defaultTo(false).notNullable()
})
}
export async function down(knex: Knex): Promise<void> {
await knex.schema.alterTable(TABLE_NAME, (table) => {
table.dropColumn(COL_NAME)
})
}
@@ -38,7 +38,8 @@ module.exports = {
description,
adminContact,
termsOfService,
inviteOnly
inviteOnly,
guestModeEnabled
}) {
const serverInfo = await Info().select('*').first()
if (!serverInfo)
@@ -49,6 +50,7 @@ module.exports = {
adminContact,
termsOfService,
inviteOnly,
guestModeEnabled,
completed: true
})
else
@@ -59,6 +61,7 @@ module.exports = {
adminContact,
termsOfService,
inviteOnly,
guestModeEnabled,
completed: true
})
}
@@ -1837,6 +1837,7 @@ export type ServerInfo = {
canonicalUrl?: Maybe<Scalars['String']>;
company?: Maybe<Scalars['String']>;
description?: Maybe<Scalars['String']>;
guestModeEnabled: Scalars['Boolean'];
inviteOnly?: Maybe<Scalars['Boolean']>;
name: Scalars['String'];
roles: Array<Maybe<Role>>;
@@ -1849,6 +1850,7 @@ export type ServerInfoUpdateInput = {
adminContact?: InputMaybe<Scalars['String']>;
company?: InputMaybe<Scalars['String']>;
description?: InputMaybe<Scalars['String']>;
guestModeEnabled?: InputMaybe<Scalars['Boolean']>;
inviteOnly?: InputMaybe<Scalars['Boolean']>;
name: Scalars['String'];
termsOfService?: InputMaybe<Scalars['String']>;