Skip to content
This repository was archived by the owner on Sep 13, 2023. It is now read-only.

Commit 900e414

Browse files
thebriandoitsjackgardner
authored andcommitted
[AFP-2121] Configure Permissions Message (#82)
* add field in config to configure permissions message on queue and history tabs * revert changes to docker compose * remove permission import, change permission check back to 'read' * revert changes to docker compose * add default permissions message in Config.ts Co-authored-by: Brian Do <[email protected]>
1 parent 992c49d commit 900e414

File tree

8 files changed

+34
-12
lines changed

8 files changed

+34
-12
lines changed

.circleci/config.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ jobs:
77
working_directory: ~/repo
88
steps:
99
- checkout
10-
- restore_cache:
11-
keys:
12-
- v1-dependencies-{{ checksum "yarn.lock" }}
13-
- v1-dependencies-
1410
- run: yarn
1511
- save_cache:
1612
paths:

src/lib/Config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ const getConfig = (): Config | null => {
1717
configValid = false;
1818
}
1919

20+
if (!config.permissionsMessage) {
21+
config.permissionsMessage = 'Contact an admin for permission to view this information';
22+
}
23+
2024
if (!configValid) {
2125
throw new Error('Config is invalid');
2226
}

src/lib/Runner.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,7 @@ export class Runner {
647647
bitbucketBaseUrl: `https://bitbucket.org/${this.config.repoConfig.repoOwner}/${
648648
this.config.repoConfig.repoName
649649
}`,
650+
permissionsMessage: this.config.permissionsMessage,
650651
};
651652
};
652653
}

src/static/current-state/components/App.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export const App: React.FunctionComponent = () => (
3434
loggedInUser={loggedInUser}
3535
paused={data.pauseState !== null}
3636
bannerMessageState={data.bannerMessageState}
37+
permissionsMessage={data.permissionsMessage}
3738
/>
3839
</div>
3940
)}

src/static/current-state/components/tabs/HistoryTab.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { Section } from '../Section';
3434
export type HistoryTabProps = {
3535
bitbucketBaseUrl: string;
3636
loggedInUser: ISessionUser;
37+
permissionsMessage: string;
3738
};
3839

3940
type HistoryState = {
@@ -64,7 +65,7 @@ export class HistoryTab extends React.Component<HistoryTabProps, HistoryState> {
6465
<TabContent>
6566
<EmptyState>
6667
{this.props.loggedInUser.permission === 'read'
67-
? 'Contact an admin for permission to view this information'
68+
? this.props.permissionsMessage
6869
: 'Empty...'}
6970
</EmptyState>
7071
</TabContent>

src/static/current-state/components/tabs/QueueTab.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ export type QueueTabProps = {
77
bitbucketBaseUrl: string;
88
loggedInUser: ISessionUser;
99
queue: IStatusUpdate[];
10+
permissionsMessage: string;
1011
};
1112

1213
export const QueueTab: React.FunctionComponent<QueueTabProps> = props => {
13-
const { bitbucketBaseUrl, loggedInUser, queue } = props;
14+
const { bitbucketBaseUrl, loggedInUser, queue, permissionsMessage } = props;
1415
return (
1516
<div>
1617
<QueueItemsList
@@ -20,9 +21,7 @@ export const QueueTab: React.FunctionComponent<QueueTabProps> = props => {
2021
renderEmpty={() => (
2122
<TabContent>
2223
<EmptyState>
23-
{loggedInUser.permission === 'read'
24-
? 'Contact an admin for permission to view this information'
25-
: 'Queue is empty...'}
24+
{loggedInUser.permission === 'read' ? permissionsMessage : 'Queue is empty...'}
2625
</EmptyState>
2726
</TabContent>
2827
)}

src/static/current-state/components/tabs/index.tsx

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ export type TabsProps = {
8484
loggedInUser: ISessionUser;
8585
paused: boolean;
8686
bannerMessageState: IMessageState | null;
87+
permissionsMessage: string;
8788
};
8889

8990
type TabsState = {
@@ -112,7 +113,15 @@ export class Tabs extends React.Component<TabsProps, TabsState> {
112113

113114
render() {
114115
const { selected } = this.state;
115-
const { users, bitbucketBaseUrl, queue, loggedInUser, paused, bannerMessageState } = this.props;
116+
const {
117+
users,
118+
bitbucketBaseUrl,
119+
queue,
120+
loggedInUser,
121+
paused,
122+
bannerMessageState,
123+
permissionsMessage,
124+
} = this.props;
116125

117126
return (
118127
<Section important last>
@@ -126,10 +135,19 @@ export class Tabs extends React.Component<TabsProps, TabsState> {
126135
/>
127136
) : null}
128137
{selected === 1 ? (
129-
<QueueTab bitbucketBaseUrl={bitbucketBaseUrl} loggedInUser={loggedInUser} queue={queue} />
138+
<QueueTab
139+
bitbucketBaseUrl={bitbucketBaseUrl}
140+
loggedInUser={loggedInUser}
141+
queue={queue}
142+
permissionsMessage={permissionsMessage}
143+
/>
130144
) : null}
131145
{selected === 2 ? (
132-
<HistoryTab bitbucketBaseUrl={bitbucketBaseUrl} loggedInUser={loggedInUser} />
146+
<HistoryTab
147+
bitbucketBaseUrl={bitbucketBaseUrl}
148+
loggedInUser={loggedInUser}
149+
permissionsMessage={permissionsMessage}
150+
/>
133151
) : null}
134152
</Section>
135153
);

src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ export type Config = {
7575
prSettings: PullRequestSettings;
7676
deployment: DeploymentConfig;
7777
maxConcurrentBuilds?: number;
78+
permissionsMessage: string;
7879
sequelize?: any;
7980
easterEgg?: any;
8081
};
@@ -87,4 +88,5 @@ export type RunnerState = {
8788
users: UserState[];
8889
bannerMessageState: IMessageState | null;
8990
bitbucketBaseUrl: string;
91+
permissionsMessage: string;
9092
};

0 commit comments

Comments
 (0)