Skip to content

Commit ec2019d

Browse files
fixed assign role api and handle delete user on role based
1 parent 55c5e40 commit ec2019d

File tree

5 files changed

+57
-39
lines changed

5 files changed

+57
-39
lines changed

src/ui/layouts/pipelines/Pipelines/AllRuns/useService.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { runsActions } from '../../../../../redux/actions';
33
import {
44
runSelectors,
55
runPagesSelectors,
6+
projectSelectors,
67
} from '../../../../../redux/selectors';
78
import { useDispatch, useSelector } from '../../../../hooks';
89

@@ -15,11 +16,12 @@ export const useService = (): ServiceInterface => {
1516
const fetching = useSelector(runPagesSelectors.fetching);
1617
const dispatch = useDispatch();
1718
const runs = useSelector(runSelectors.myRuns);
19+
const selectedProject = useSelector(projectSelectors.selectedProject);
1820

1921
useEffect(() => {
2022
const intervalId = setInterval(() => {
2123
//assign interval to a variable to clear it.
22-
dispatch(runsActions.allRuns({}));
24+
dispatch(runsActions.allRuns({ project: selectedProject }));
2325
}, 5000);
2426

2527
return () => clearInterval(intervalId); //This is important

src/ui/layouts/settings/Organization/InvitePopup.tsx

Lines changed: 43 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ export const InvitePopup: React.FC<{
3838
const invite = useSelector(organizationSelectors.invite);
3939
const roles = useSelector(rolesSelectors.getRoles);
4040

41-
const [role, setrole] = useState('');
41+
const [role, setRole] = useState('');
42+
4243
const authToken = useSelector(sessionSelectors.authenticationToken);
4344

4445
const inviteNewMembers = () => {
@@ -62,8 +63,12 @@ export const InvitePopup: React.FC<{
6263
};
6364
axios
6465
.post(
65-
`${process.env.REACT_APP_BASE_API_URL}/users/${user.id}/roles?role_name_or_id=${role}`,
66-
{},
66+
// users/${user.id}/roles?role_name_or_id=${role}
67+
`${process.env.REACT_APP_BASE_API_URL}/role_assignments`,
68+
{
69+
user: user.id,
70+
role: role,
71+
},
6772
{ headers },
6873
)
6974
.then(() => {
@@ -93,8 +98,8 @@ export const InvitePopup: React.FC<{
9398
);
9499
}
95100
};
96-
function handleChange(value: any) {
97-
setrole(value);
101+
function handleChange(value: string) {
102+
setRole(value);
98103
}
99104

100105
return (
@@ -126,37 +131,40 @@ export const InvitePopup: React.FC<{
126131
}}
127132
/>
128133
</Box>
129-
<Box marginLeft="md">
130-
<FlexBox.Column fullWidth>
131-
<Box paddingBottom="xs">
132-
<Paragraph size="body" style={{ color: 'black' }}>
133-
<label htmlFor={name}>{'Roles'}</label>
134-
</Paragraph>
135-
</Box>
136-
<select
137-
onChange={(e: any) => handleChange(e.target.value)}
138-
value={role}
139-
placeholder={'Roles'}
140-
className={cn(styles.input)}
141-
style={{
142-
// borderTopRightRadius: 0,
143-
// borderBottomRightRadius: 0,
144-
width: '146px',
145-
fontSize: '12px',
146-
color: '#424240',
147-
}}
148-
>
149-
<option selected disabled value="">
150-
{'Roles'}
151-
</option>
152-
{roles.map((option, index) => (
153-
<option key={index} value={option.name}>
154-
{option.name.toUpperCase()}
134+
{!showTokField && (
135+
<Box marginLeft="md">
136+
<FlexBox.Column fullWidth>
137+
<Box paddingBottom="xs">
138+
<Paragraph size="body" style={{ color: 'black' }}>
139+
<label htmlFor={name}>{'Roles'}</label>
140+
</Paragraph>
141+
</Box>
142+
143+
<select
144+
onChange={(e: any) => handleChange(e.target.value)}
145+
value={role}
146+
placeholder={'Roles'}
147+
className={cn(styles.input)}
148+
style={{
149+
// borderTopRightRadius: 0,
150+
// borderBottomRightRadius: 0,
151+
width: '146px',
152+
fontSize: '12px',
153+
color: '#424240',
154+
}}
155+
>
156+
<option selected disabled value="">
157+
{'Roles'}
155158
</option>
156-
))}
157-
</select>
158-
</FlexBox.Column>
159-
</Box>
159+
{roles.map((option) => (
160+
<option key={option.id} value={option.id}>
161+
{option.name.toUpperCase()}
162+
</option>
163+
))}
164+
</select>
165+
</FlexBox.Column>
166+
</Box>
167+
)}
160168

161169
{!showTokField && (
162170
<Box style={{ width: '10%', marginTop: '27px' }} marginLeft="md">

src/ui/layouts/settings/Organization/index.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ type Table = 'members' | 'invites';
2323
export const Organization: React.FC = () => {
2424
const dispatch = useDispatch();
2525
const authToken = useSelector(sessionSelectors.authenticationToken);
26-
var decoded: any = jwt_decode(authToken as any);
26+
if (authToken) {
27+
var decoded: any = jwt_decode(authToken as any);
28+
}
2729
const [fetchingMembers, setFetchingMembers] = useState(true);
2830

2931
const [popupOpen, setPopupOpen] = useState(false);
@@ -39,6 +41,7 @@ export const Organization: React.FC = () => {
3941
} = useService();
4042

4143
const memberHeaderCols = useMemberHeaderCols({
44+
decoded,
4245
filteredMembers,
4346
setFilteredMembers: setFilteredMembers,
4447
activeSorting,

src/ui/layouts/settings/Organization/useHeaderCols.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,15 @@ export const useInviteHeaderCols = (): HeaderCol[] => {
7575
const headColStyle = { color: '#000', fontWeight: 700 };
7676

7777
export const useMemberHeaderCols = ({
78+
decoded,
7879
filteredMembers,
7980
setFilteredMembers,
8081
activeSorting,
8182
activeSortingDirection,
8283
setActiveSortingDirection,
8384
setActiveSorting,
8485
}: {
86+
decoded: any;
8587
filteredMembers: TMember[];
8688
setFilteredMembers: (members: TMember[]) => void;
8789
activeSorting: Sorting | null;
@@ -221,7 +223,7 @@ export const useMemberHeaderCols = ({
221223
</FlexBox>
222224
),
223225
},
224-
{
226+
decoded.permissions.includes('write') && {
225227
render: () => <Paragraph size="small"></Paragraph>,
226228
width: '5%',
227229
renderRow: (member: TInvite) => (

src/ui/layouts/settings/PersonalDetails.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ export const PersonalDetails: React.FC = () => {
4040
const [confirmPassword, setConfirmPassword] = useState('');
4141

4242
const authToken = useSelector(sessionSelectors.authenticationToken);
43-
var decoded: any = jwt_decode(authToken as any);
43+
if (authToken) {
44+
var decoded: any = jwt_decode(authToken as any);
45+
}
46+
4447
if (!user) return null;
4548

4649
const forgotPassword = () => {

0 commit comments

Comments
 (0)