|
|
@@ -56,6 +56,7 @@ export function ManagersTable({
|
|
|
const [inviteError, setInviteError] = useState<APIError>()
|
|
|
const [removeMemberInflightCount, setRemoveMemberInflightCount] = useState(0)
|
|
|
const [removeMemberError, setRemoveMemberError] = useState<APIError>()
|
|
|
+ const hasWriteAccess = getMeta('ol-hasWriteAccess')
|
|
|
|
|
|
const addManagers = useCallback(
|
|
|
(e: FormEvent | React.MouseEvent) => {
|
|
|
@@ -181,13 +182,15 @@ export function ManagersTable({
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th className="cell-checkbox">
|
|
|
- <OLFormCheckbox
|
|
|
- autoComplete="off"
|
|
|
- onChange={handleSelectAllClick}
|
|
|
- checked={selectedUsers.length === users.length}
|
|
|
- aria-label={t('select_all')}
|
|
|
- data-testid="select-all-checkbox"
|
|
|
- />
|
|
|
+ {hasWriteAccess && (
|
|
|
+ <OLFormCheckbox
|
|
|
+ autoComplete="off"
|
|
|
+ onChange={handleSelectAllClick}
|
|
|
+ checked={selectedUsers.length === users.length}
|
|
|
+ aria-label={t('select_all')}
|
|
|
+ data-testid="select-all-checkbox"
|
|
|
+ />
|
|
|
+ )}
|
|
|
</th>
|
|
|
<th>{t('email')}</th>
|
|
|
<th className="cell-name">{t('name')}</th>
|
|
|
@@ -225,45 +228,50 @@ export function ManagersTable({
|
|
|
selectUser={selectUser}
|
|
|
unselectUser={unselectUser}
|
|
|
selected={selectedUsers.includes(user)}
|
|
|
+ hasWriteAccess={hasWriteAccess}
|
|
|
/>
|
|
|
))}
|
|
|
</tbody>
|
|
|
</OLTable>
|
|
|
</div>
|
|
|
- <hr />
|
|
|
- <div>
|
|
|
- <p className="small">{t('add_more_managers')}</p>
|
|
|
- <ErrorAlert error={inviteError} />
|
|
|
- <form onSubmit={addManagers} data-testid="add-members-form">
|
|
|
- <OLRow>
|
|
|
- <OLCol xs={6}>
|
|
|
- <OLFormControl
|
|
|
- type="input"
|
|
|
- placeholder="jane@example.com, joe@example.com"
|
|
|
- aria-describedby="add-members-description"
|
|
|
- value={emailString}
|
|
|
- onChange={handleEmailsChange}
|
|
|
- />
|
|
|
- </OLCol>
|
|
|
- <OLCol xs={4}>
|
|
|
- <OLButton
|
|
|
- variant="primary"
|
|
|
- onClick={addManagers}
|
|
|
- isLoading={inviteUserInflightCount > 0}
|
|
|
- >
|
|
|
- {t('add')}
|
|
|
- </OLButton>
|
|
|
- </OLCol>
|
|
|
- </OLRow>
|
|
|
- <OLRow>
|
|
|
- <OLCol xs={8}>
|
|
|
- <OLFormText>
|
|
|
- {t('add_comma_separated_emails_help')}
|
|
|
- </OLFormText>
|
|
|
- </OLCol>
|
|
|
- </OLRow>
|
|
|
- </form>
|
|
|
- </div>
|
|
|
+ {hasWriteAccess && (
|
|
|
+ <>
|
|
|
+ <hr />
|
|
|
+ <div>
|
|
|
+ <p className="small">{t('add_more_managers')}</p>
|
|
|
+ <ErrorAlert error={inviteError} />
|
|
|
+ <form onSubmit={addManagers} data-testid="add-members-form">
|
|
|
+ <OLRow>
|
|
|
+ <OLCol xs={6}>
|
|
|
+ <OLFormControl
|
|
|
+ type="input"
|
|
|
+ placeholder="jane@example.com, joe@example.com"
|
|
|
+ aria-describedby="add-members-description"
|
|
|
+ value={emailString}
|
|
|
+ onChange={handleEmailsChange}
|
|
|
+ />
|
|
|
+ </OLCol>
|
|
|
+ <OLCol xs={4}>
|
|
|
+ <OLButton
|
|
|
+ variant="primary"
|
|
|
+ onClick={addManagers}
|
|
|
+ isLoading={inviteUserInflightCount > 0}
|
|
|
+ >
|
|
|
+ {t('add')}
|
|
|
+ </OLButton>
|
|
|
+ </OLCol>
|
|
|
+ </OLRow>
|
|
|
+ <OLRow>
|
|
|
+ <OLCol xs={8}>
|
|
|
+ <OLFormText>
|
|
|
+ {t('add_comma_separated_emails_help')}
|
|
|
+ </OLFormText>
|
|
|
+ </OLCol>
|
|
|
+ </OLRow>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ </>
|
|
|
+ )}
|
|
|
</OLCard>
|
|
|
</OLCol>
|
|
|
</OLRow>
|