Skip to content

Commit ab511bb

Browse files
authored
Merge pull request #105 from devtron-labs/user-access
Issue #410 and #411. User Access Behaviour Fixed
2 parents fb3bd4b + 39d9e96 commit ab511bb

File tree

3 files changed

+12
-17
lines changed

3 files changed

+12
-17
lines changed

src/components/userGroups/Group.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,12 @@ export default function GroupForm({ id = null, index = null, groupData = null, u
9696
const { result } = await saveGroup(payload)
9797
if (id) {
9898
updateCallback(index, result)
99+
toast.success('Group updated')
99100
}
100101
else {
101102
createCallback(result)
103+
toast.success('Group createed')
102104
}
103-
104-
toast.success('Create successfully')
105105
}
106106
catch (err) {
107107
showError(err)
@@ -237,7 +237,7 @@ export default function GroupForm({ id = null, index = null, groupData = null, u
237237
setSubmitting(true)
238238
try {
239239
await deleteGroup(id)
240-
toast.success('Deleted group successfully.')
240+
toast.success('Group deleted')
241241
deleteCallback(index)
242242
}
243243
catch (err) {

src/components/userGroups/User.tsx

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11

22
import React, { useState, useEffect, useMemo, useCallback, useRef } from 'react'
3-
import { showError, Progressing, ConfirmationDialog, mapByKey, removeItemsFromArray, validateEmail, Option, ClearIndicator, MultiValueRemove, multiSelectStyles, DeleteDialog } from '../common'
4-
3+
import { showError, Progressing, mapByKey, removeItemsFromArray, validateEmail, Option, ClearIndicator, MultiValueRemove, multiSelectStyles, DeleteDialog } from '../common'
54
import { saveUser, deleteUser } from './userGroup.service';
65
import Creatable from 'react-select/creatable'
76
import Select, { components } from 'react-select';
8-
97
import { DirectPermissionsRoleFilter, ChartGroupPermissionsFilter, EntityTypes, ActionTypes, CreateUser, OptionType, APIRoleFilter } from './userGroups.types'
10-
import './UserGroup.scss';
118
import { toast } from 'react-toastify'
129
import { useUserGroupContext, DirectPermission, ChartPermission, GroupRow } from './UserGroup'
13-
import deleteIcon from '../../assets/img/warning-medium.svg'
1410
import { ReactComponent as AddIcon } from '../../assets/icons/ic-add.svg';
1511
import { ReactComponent as RedWarning } from '../../assets/icons/ic-error-medium.svg';
12+
import './UserGroup.scss';
1613

1714
const MultiValueContainer = ({ validator, ...props }) => {
1815
const { children, data, innerProps, selectProps } = props
@@ -151,17 +148,16 @@ export default function UserForm({ id = null, userData = null, index, updateCall
151148
],
152149
superAdmin: localSuperAdmin
153150
}
154-
155151
try {
156152
const { result } = await saveUser(payload)
157153
if (id) {
158154
updateCallback(index, result)
155+
toast.success('User updated');
159156
}
160157
else {
161158
createCallback(result)
159+
toast.success('User created');
162160
}
163-
164-
toast.success('Created user successfully')
165161
}
166162
catch (err) {
167163
showError(err)
@@ -335,7 +331,7 @@ export default function UserForm({ id = null, userData = null, index, updateCall
335331
try {
336332
await deleteUser(id)
337333
deleteCallback(index)
338-
toast.success('Deleted user successfully.')
334+
toast.success('User deleted')
339335
}
340336
catch (err) {
341337
showError(err)

src/components/userGroups/UserGroup.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,22 @@ import { useRouteMatch } from 'react-router'
44
import { useAsync, NavigationArrow, getRandomColor, not, useKeyDown, noop, ConditionalWrap, Progressing, showError, removeItemsFromArray, getRandomString, Option, MultiValueContainer, MultiValueRemove, multiSelectStyles, sortBySelected, mapByKey, useEffectAfterMount } from '../common'
55
import { getUserList, getGroupList, getUserId, getGroupId, getUserRole } from './userGroup.service';
66
import { ReactComponent as AddIcon } from '../../assets/icons/ic-add.svg';
7-
import Select, { components } from 'react-select';
87
import { get } from '../../services/api'
98
import { getEnvironmentListMin, getProjectFilteredApps } from '../../services/service'
109
import { getChartGroups } from '../charts/charts.service'
1110
import { ChartGroup } from '../charts/charts.types'
1211
import { DirectPermissionsRoleFilter, ChartGroupPermissionsFilter, ActionTypes, OptionType } from './userGroups.types'
1312
import UserForm from './User'
1413
import GroupForm from './Group';
15-
import './UserGroup.scss';
14+
import Select, { components } from 'react-select';
1615
import { DOCUMENTATION, Routes } from '../../config'
17-
1816
import { ReactComponent as CloseIcon } from '../../assets/icons/ic-close.svg'
1917
import Tippy from '@tippyjs/react';
2018
import EmptyState from '../EmptyState/EmptyState';
2119
import EmptyImage from '../../assets/img/[email protected]';
2220
import EmptySearch from '../../assets/img/[email protected]';
2321
import { ReactComponent as Lock } from '../../assets/icons/ic-locked.svg'
22+
import './UserGroup.scss';
2423

2524
interface UserGroup {
2625
appsList: Map<number, { loading: boolean, result: { id: number, name: string }[], error: any }>;
@@ -248,10 +247,10 @@ const UserGroupList: React.FC<{ type: 'user' | 'group', reloadLists: () => void
248247
if (loading) return <div className="w-100 flex" style={{ minHeight: '600px' }}><Progressing pageLoader /></div>
249248
if (!addHash) return type === "user" ? <NoUsers onClick={addNewEntry} /> : <NoGroups onClick={addNewEntry} />
250249
const filteredAndSorted = result
251-
.filter(userOrGroup => (userOrGroup.email_id?.includes(searchString) || userOrGroup.name?.includes(searchString) || userOrGroup.description?.includes(searchString)))
250+
.filter(userOrGroup => (userOrGroup.email_id?.includes(searchString?.toLowerCase()) || userOrGroup.name?.includes(searchString?.toLowerCase()) || userOrGroup.description?.includes(searchString)))
252251
return (
253252
<div id="auth-page__body" className="auth-page__body-users__list-container">
254-
{result.length > 0 && <input value={searchString} autoComplete="off" ref={searchRef} type="search" placeholder={`search ${type}`} className="auth-search" onChange={e => setSearchString(e.target.value)} />}
253+
{result.length > 0 && <input value={searchString} autoComplete="off" ref={searchRef} type="search" placeholder={`Search ${type}`} className="auth-search" onChange={e => setSearchString(e.target.value)} />}
255254
{!(filteredAndSorted.length === 0 && result.length > 0) && <AddUser cancelCallback={cancelCallback} key={addHash} text={`Add ${type}`} type={type} open={!(result) || result?.length === 0} {...{ createCallback, updateCallback, deleteCallback }} />}
256255
{filteredAndSorted
257256
.map((data, index) =>

0 commit comments

Comments
 (0)