Skip to content

Commit 1fb210f

Browse files
committed
Improve permission control testing mechanism
1 parent a238863 commit 1fb210f

File tree

6 files changed

+21
-17
lines changed

6 files changed

+21
-17
lines changed

.env.example

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ NEXT_PUBLIC_ENV=test
1111
# true | false
1212
NEXT_PUBLIC_DEBUG=false
1313

14-
# Unlocks authorization, useful for validation and permission control testing
15-
# true | false
16-
NEXT_PUBLIC_IS_UNDER_INSPECTION=false
14+
# An account id of the account you want to impersonate for testing purposes
15+
# Useful for permission control testing
16+
NEXT_PUBLIC_DEBUG_VIEW_AS=

src/common/constants.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ export const DEBUG = process.env.NEXT_PUBLIC_DEBUG === "true" ? true : false;
1313
/**
1414
* Unlocks authorization, useful for validation and permission control testing
1515
*/
16-
export const IS_UNDER_INSPECTION =
17-
process.env.NEXT_PUBLIC_IS_UNDER_INSPECTION === "true" ? true : false;
16+
export const DEBUG_ACCOUNT_ID = process.env.NEXT_PUBLIC_DEBUG_VIEW_AS || null;
1817

1918
export const ICONS_ASSET_ENDPOINT_URL = "/assets/icons";
2019
export const IMAGES_ASSET_ENDPOINT_URL = "/assets/images";

src/common/wallet/components.tsx

+10-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { useCallback, useEffect, useMemo } from "react";
33
import { useRouter } from "next/router";
44

55
import { nearProtocolClient } from "@/common/blockchains/near-protocol";
6-
import { IS_CLIENT } from "@/common/constants";
6+
import { DEBUG_ACCOUNT_ID, IS_CLIENT } from "@/common/constants";
77

88
import { useWalletUserAdapter } from "./adapters";
99
import { useWalletUserMetadataStore } from "./model";
@@ -35,8 +35,15 @@ const WalletProvider: React.FC<WalletProviderProps> = ({ children }) => {
3535
const { referrerAccountId, setReferrerAccountId } = useWalletUserMetadataStore();
3636

3737
const syncWalletState = useCallback(() => {
38-
const isWalletSignedIn = nearProtocolClient.walletApi.walletSelector.isSignedIn();
39-
const walletAccountId = nearProtocolClient.walletApi.accountId;
38+
const isWalletSignedIn =
39+
typeof DEBUG_ACCOUNT_ID === "string"
40+
? true
41+
: nearProtocolClient.walletApi.walletSelector.isSignedIn();
42+
43+
const walletAccountId =
44+
typeof DEBUG_ACCOUNT_ID === "string"
45+
? DEBUG_ACCOUNT_ID
46+
: nearProtocolClient.walletApi.accountId;
4047

4148
if (isWalletSignedIn !== isSignedIn || walletAccountId !== accountId) {
4249
setAccountState({ accountId: walletAccountId, isSignedIn: isWalletSignedIn });

src/entities/pot/hooks/authorization.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { useMemo } from "react";
22

33
import { ByPotId } from "@/common/api/indexer";
4-
import { IS_UNDER_INSPECTION } from "@/common/constants";
54
import { ApplicationStatus, potContractHooks } from "@/common/contracts/core/pot";
65
import { isAccountId } from "@/common/lib";
76
import type { ByAccountId } from "@/common/types";
@@ -54,22 +53,21 @@ export const usePotAuthorization = ({ potId, accountId }: ByPotId & Partial<ByAc
5453
);
5554

5655
const isOwner = useMemo(
57-
() => IS_UNDER_INSPECTION || (isValidAccountId && potConfig && accountId === potConfig.owner),
56+
() => isValidAccountId && potConfig && accountId === potConfig.owner,
5857
[accountId, isValidAccountId, potConfig],
5958
);
6059

6160
const isAdmin = useMemo(
6261
() =>
63-
IS_UNDER_INSPECTION ||
64-
(isValidAccountId &&
65-
potConfig &&
66-
potConfig.admins.find((adminAccountId) => accountId === adminAccountId)),
62+
isValidAccountId &&
63+
potConfig &&
64+
potConfig.admins.find((adminAccountId) => accountId === adminAccountId),
6765

6866
[accountId, isValidAccountId, potConfig],
6967
);
7068

7169
const isChef = useMemo(
72-
() => IS_UNDER_INSPECTION || (isValidAccountId && potConfig && accountId === potConfig.chef),
70+
() => isValidAccountId && potConfig && accountId === potConfig.chef,
7371
[accountId, isValidAccountId, potConfig],
7472
);
7573

src/layout/profile/components/summary.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ export const ProfileLayoutSummary: React.FC<ProfileLayoutSummaryProps> = ({ acco
180180
>
181181
{FEATURE_REGISTRY.ProfileConfiguration.isEnabled
182182
? "Edit Profile"
183-
: "Edit Profile ( BOS App )"}
183+
: "Edit Profile on BOS"}
184184
</Link>
185185
</Button>
186186
</div>

src/pages/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const WelcomeBanner = () => {
9898
>
9999
{viewer.hasRegistrationSubmitted
100100
? "View Your Project"
101-
: "Register Your Project ( BOS App )"}
101+
: "Register Your Project (BOS App)"}
102102
</Link>
103103
</Button>
104104
)}

0 commit comments

Comments
 (0)