Skip to content

Commit cc667a4

Browse files
committed
moved allowedWallets to env var
1 parent 623dcbd commit cc667a4

File tree

7 files changed

+17
-25
lines changed

7 files changed

+17
-25
lines changed

.example.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ OAUTH2_GOOGLE_CLIENT_SECRET=""
1515
# Polkadot
1616
AUTH_MESSAGE_TO_SIGN="027bbda234f3e86273683eab96a4a2a1d3a0"
1717
WALLET_CONNECT_PROJECT_ID="projectIdOnWalletConnectCloud"
18+
ALLOWED_WALLETS=["polkadot-js","talisman","subwallet-js","subwallet","novawallet","walletconnect"]
1819

1920
# INTEGRATIONS
2021

scripts/client.build.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ function getBuildConfig(): BuildOptions {
6464
'process.env.APP_HOST': JSON.stringify(config.appHost),
6565
'process.env.APP_ICON': JSON.stringify(config.appIcon),
6666
'process.env.MAPBOX_API_KEY': JSON.stringify(process.env.MAPBOX_API_KEY),
67+
'process.env.ALLOWED_WALLETS': JSON.stringify(config.allowedWallets),
6768
'process.env.AUTH_MESSAGE_TO_SIGN': JSON.stringify(
6869
config.authMessageToSign
6970
),

src/client/config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ type ClientAppConfig = {
5151
roleGroups: ClientUserRoleGroup[]
5252
auth: ClientAuthConfig
5353
authMessageToSign: string
54+
allowedWallets: string[]
5455
walletConnectProjectId: string
5556
}
5657

@@ -68,6 +69,7 @@ const config: ClientAppConfig = {
6869
roleGroups: process.env.ROLE_GROUPS as unknown as ClientUserRoleGroup[],
6970
auth: process.env.AUTH as unknown as ClientAuthConfig,
7071
authMessageToSign: process.env.AUTH_MESSAGE_TO_SIGN as unknown as string,
72+
allowedWallets: process.env.ALLOWED_WALLETS as unknown as string[],
7173
walletConnectProjectId: process.env
7274
.WALLET_CONNECT_PROJECT_ID as unknown as string,
7375
}

src/modules/users/server/router.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import {
3333
} from './helpers'
3434

3535
import { Metadata } from '../metadata-schema'
36-
import { allowedPolkadotAuthProviders } from '../shared-helpers'
3736

3837
const ROLES_ALLOWED_TO_BE_ON_MAP = appConfig.getRolesByPermission(
3938
Permissions.UseMap
@@ -499,7 +498,7 @@ const userRouter: FastifyPluginCallback = async function (fastify, opts) {
499498
const extensionName = req.body.extensionName as string
500499
const source = extensionName.replace(/ /g, '').toLowerCase()
501500

502-
if (!allowedPolkadotAuthProviders.includes(source)) {
501+
if (!config.allowedWallets.includes(source)) {
503502
return reply.throw.badParams(
504503
'This authentication provider is not approved. Please contact administrator.'
505504
)

src/modules/users/shared-helpers/index.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,6 @@ import dayjs from 'dayjs'
22
import dayjsTimezone from 'dayjs/plugin/timezone'
33
import dayjsUtc from 'dayjs/plugin/utc'
44

5-
export const allowedPolkadotAuthProviders = [
6-
'polkadot-js',
7-
'talisman',
8-
'subwallet-js',
9-
'subwallet',
10-
'novawallet',
11-
'walletconnect',
12-
]
13-
145
dayjs.extend(dayjsTimezone)
156
dayjs.extend(dayjsUtc)
167

src/server/auth/providers/polkadot/index.ts

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { FastifyInstance, FastifyPluginCallback, FastifyRequest } from 'fastify'
44
import type { InjectedAccountWithMeta } from '@polkadot/extension-inject/types'
55
import { getSession, getUserByProvider, isValidSignature } from '../helper'
66
import { ExtensionAccount } from '#client/components/auth/helper'
7+
import config from '#server/config'
78

89
export const plugin: FastifyPluginCallback = async (
910
fastify: FastifyInstance
@@ -12,11 +13,11 @@ export const plugin: FastifyPluginCallback = async (
1213
'/users',
1314
async (
1415
req: FastifyRequest<{
15-
Body: { selectedAccount: InjectedAccountWithMeta; signature: string }
16+
Body: { selectedAccount: ExtensionAccount; signature: string }
1617
}>,
1718
reply
1819
) => {
19-
const body: InjectedAccountWithMeta = req.body.selectedAccount
20+
const body: ExtensionAccount = req.body.selectedAccount
2021
const isSignatureValid = isValidSignature(
2122
body.address,
2223
req.body.signature
@@ -35,11 +36,15 @@ export const plugin: FastifyPluginCallback = async (
3536
'/login',
3637
async (
3738
req: FastifyRequest<{
38-
Body: { selectedAccount: InjectedAccountWithMeta; signature: string }
39+
Body: { selectedAccount: ExtensionAccount; signature: string }
3940
}>,
4041
reply
4142
) => {
42-
const body: InjectedAccountWithMeta = req.body.selectedAccount
43+
const body: ExtensionAccount = req.body.selectedAccount
44+
const source = body.source?.replace(/ /g, '').toLowerCase()
45+
if (!config.allowedWallets.includes(source)) {
46+
return reply.throw.conflict('Unsupported extension')
47+
}
4348
const isSignatureValid = isValidSignature(
4449
body.address,
4550
req.body.signature
@@ -69,17 +74,8 @@ export const plugin: FastifyPluginCallback = async (
6974
) => {
7075
const body: ExtensionAccount = req.body.selectedAccount
7176
const source = body.source?.replace(/ /g, '').toLowerCase()
72-
// @todo move to app config?
73-
const allowedPolkadotAuthProviders = [
74-
'polkadot-js',
75-
'talisman',
76-
'subwallet-js',
77-
'subwallet',
78-
'novawallet',
79-
'walletconnect',
80-
]
8177

82-
if (!allowedPolkadotAuthProviders.includes(source)) {
78+
if (!config.allowedWallets.includes(source)) {
8379
return reply.throw.conflict('Unsupported extension')
8480
}
8581

src/server/config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ type Config = {
2020
authMessageToSign: string | undefined
2121
walletConnectProjectId: string | undefined
2222
superusers: string[]
23+
allowedWallets: string[]
2324
workingHoursTestGroup: string[]
2425
}
2526

@@ -38,6 +39,7 @@ const config: Config = {
3839
oauth2GoogleClientSecret: process.env.OAUTH2_GOOGLE_CLIENT_SECRET || '',
3940
superusers: JSON.parse(process.env.SUPERUSERS || '[]'),
4041
authMessageToSign: process.env.AUTH_MESSAGE_TO_SIGN,
42+
allowedWallets: JSON.parse(process.env.ALLOWED_WALLETS || '[]'),
4143
workingHoursTestGroup: JSON.parse(
4244
process.env.WORKING_HOURS_TEST_GROUP || '[]'
4345
),

0 commit comments

Comments
 (0)