|
@@ -32,7 +32,7 @@ import AsyncView from 'sentry/views/asyncView';
|
|
|
import SettingsPageHeader from 'sentry/views/settings/components/settingsPageHeader';
|
|
|
import TeamSelect from 'sentry/views/settings/components/teamSelect';
|
|
|
|
|
|
-import RoleSelect from './inviteMember/roleSelect';
|
|
|
+import OrganizationRoleSelect from './inviteMember/orgRoleSelect';
|
|
|
|
|
|
const MULTIPLE_ORGS = t('Cannot be reset since user is in more than one organization');
|
|
|
const NOT_ENROLLED = t('Not enrolled in two-factor authentication');
|
|
@@ -52,8 +52,6 @@ type Props = {
|
|
|
|
|
|
type State = {
|
|
|
member: Member | null;
|
|
|
- roleList: Member['roles'];
|
|
|
- selectedRole: Member['role'];
|
|
|
} & AsyncView['state'];
|
|
|
|
|
|
const DisabledMemberTooltip = HookOrDefault({
|
|
@@ -65,8 +63,6 @@ class OrganizationMemberDetail extends AsyncView<Props, State> {
|
|
|
getDefaultState(): State {
|
|
|
return {
|
|
|
...super.getDefaultState(),
|
|
|
- roleList: [],
|
|
|
- selectedRole: '',
|
|
|
member: null,
|
|
|
};
|
|
|
}
|
|
@@ -240,9 +236,10 @@ class OrganizationMemberDetail extends AsyncView<Props, State> {
|
|
|
return <NotFound />;
|
|
|
}
|
|
|
|
|
|
- const {access} = organization;
|
|
|
+ const {access, features} = organization;
|
|
|
const inviteLink = member.invite_link;
|
|
|
const canEdit = access.includes('org:write') && !this.memberDeactivated;
|
|
|
+ const hasTeamRoles = features.includes('team-roles');
|
|
|
|
|
|
const {email, expired, pending} = member;
|
|
|
const canResend = !expired;
|
|
@@ -353,12 +350,13 @@ class OrganizationMemberDetail extends AsyncView<Props, State> {
|
|
|
</Panel>
|
|
|
)}
|
|
|
|
|
|
- <RoleSelect
|
|
|
+ <OrganizationRoleSelect
|
|
|
enforceAllowed={false}
|
|
|
+ enforceRetired={hasTeamRoles}
|
|
|
disabled={!canEdit}
|
|
|
roleList={member.roles}
|
|
|
- selectedRole={member.role}
|
|
|
- setRole={slug => this.setState({member: {...member, role: slug}})}
|
|
|
+ roleSelected={member.role}
|
|
|
+ setSelected={slug => this.setState({member: {...member, role: slug}})}
|
|
|
/>
|
|
|
|
|
|
<Teams slugs={member.teams}>
|