Browse Source

Merge branch 'master' of http://gitea.palntour.com/pav/pav-home

feature/auth
sanguu 2 years ago
parent
commit
7c12d07654
  1. 83
      src/containers/basis/group/BasisGroupUsersContainer.js
  2. 15
      src/modules/basis/group/actions/basisGroupAction.ts
  3. 14
      src/modules/basis/group/apis/basisGroupApi.ts
  4. 3
      src/modules/basis/group/models/basisGroupModel.ts
  5. 35
      src/modules/basis/group/sagas/basisGroupSaga.ts

83
src/containers/basis/group/BasisGroupUsersContainer.js

@ -13,12 +13,6 @@ export const BasisGroupUsersContainer = props => {
state => state.groupState
);
useEffect(() => {
if (user?.cstmrSno) {
dispatch(Actions.JOIN_LIST.request({ cstmrSno: user?.cstmrSno }));
}
}, [user]);
const { user } = useSelector(state => state.authState);
const dispatch = useDispatch();
@ -46,7 +40,7 @@ export const BasisGroupUsersContainer = props => {
{
name: '그룹명',
selector: 'groupNm',
minWidth: '102px',
minWidth: '150px',
sortable: true,
cell: row => {
return row?.groupNm;
@ -74,7 +68,7 @@ export const BasisGroupUsersContainer = props => {
{
name: '사용자 ID',
selector: 'userId',
minWidth: '102px',
minWidth: '150px',
sortable: true,
cell: row => {
return row?.userId;
@ -93,7 +87,7 @@ export const BasisGroupUsersContainer = props => {
{
name: '가입 일시',
selector: 'joinDt',
minWidth: '102px',
minWidth: '200px',
sortable: true,
cell: row => {
return row?.joinDt;
@ -102,7 +96,7 @@ export const BasisGroupUsersContainer = props => {
{
name: '권한 변경',
// selector: 'cntrlStDate',
// minWidth: '102px',
minWidth: '130px',
sortable: false,
cell: row => {
const my = joinList?.find((prev, idx) => {
@ -138,6 +132,7 @@ export const BasisGroupUsersContainer = props => {
onClick={() => handlerAdminConfirm(row?.cstmrGroupSno)}
>
운영자로 변경
{/* ADMIN */}
</Button.Ripple>
);
}
@ -163,15 +158,46 @@ export const BasisGroupUsersContainer = props => {
// </Button.Ripple>
// );
}
},
{
name: '위임 하기',
// minWidth: '102px',
sortable: false,
cell: row => {
const my = joinList?.find((prev, idx) => {
if (prev.groupId === row?.groupId) {
return prev;
}
});
// console.log('내 권한 : ', my?.groupAuthCd);
// console.log('이 사람의 권한 : ', row?.groupAuthCd);
if (row?.groupAuthCd === 'ADMIN') {
if (my?.groupAuthCd === 'CREATER') {
return (
<Button.Ripple
color='warning'
className='badge badge-warning'
onClick={() =>
handlerCreaterConfirm(row?.cstmrGroupSno, my?.cstmrGroupSno)
}
>
위임하기
</Button.Ripple>
);
}
}
}
}
];
useEffect(() => {
if (user?.cstmrSno) {
setParams({
...params,
cstmrSno: user?.cstmrSno
});
dispatch(Actions.JOIN_LIST.request({ cstmrSno: user?.cstmrSno }));
// setParams({
// ...params,
// cstmrSno: user?.cstmrSno
// });
// dispatch(
// Actions.USER_LIST.request({
@ -181,9 +207,9 @@ export const BasisGroupUsersContainer = props => {
}
}, [user]);
useEffect(() => {
// useEffect(() => {
// console.log('changeParam >>>', params);
}, [params]);
// }, [params]);
useEffect(() => {
handlerSearch();
@ -232,8 +258,33 @@ export const BasisGroupUsersContainer = props => {
});
};
const handlerCreaterConfirm = (row, my) => {
setModal({
isOpen: true,
title: '권한 위임',
desc: '해당 사용자에게 그룹장을 위임 하시겠습니까?'
});
setSaveData([
{
cstmrGroupSno: row,
joinYn: 'Y',
groupAuthCd: 'CREATER'
},
{
cstmrGroupSno: my,
joinYn: 'Y',
groupAuthCd: 'USER'
}
]);
};
const handlerAuthSave = async () => {
if (saveData.length === 2) {
dispatch(Actions.USER_DELEGATE.request(saveData));
} else {
dispatch(Actions.USER_UPDATE.request(saveData));
}
};
const handlerInput = e => {

15
src/modules/basis/group/actions/basisGroupAction.ts

@ -7,6 +7,7 @@ import {
JoinGroupData,
AprvGroupData,
UserGroupData,
UserGroupState,
GroupState
} from '../models/basisGroupModel';
@ -60,7 +61,6 @@ const GROUP_MYLIST_REQUEST = 'basis/group/GROUP_MYLIST_REQUEST';
const GROUP_MYLIST_SUCCESS = 'basis/group/GROUP_MYLIST_SUCCESS';
const GROUP_MYLIST_FAILURE = 'basis/group/GROUP_MYLIST_FAILURE';
//# 그룹 가입처리
const GROUP_JOIN_REQUEST = 'basis/group/GROUP_JOIN_REQUEST';
const GROUP_JOIN_SUCCESS = 'basis/group/GROUP_JOIN_SUCCESS';
@ -91,6 +91,11 @@ const USER_UPDATE_REQUEST = 'basis/group/USER_UPDATE_REQUEST';
const USER_UPDATE_SUCCESS = 'basis/group/USER_UPDATE_SUCCESS';
const USER_UPDATE_FAILURE = 'basis/group/USER_UPDATE_FAILURE';
//# 그룹장 권한 위임
const USER_DELEGATE_REQUEST = 'basis/group/USER_DELEGATE_REQUEST';
const USER_DELEGATE_SUCCESS = 'basis/group/USER_DELEGATE_SUCCESS';
const USER_DELEGATE_FAILURE = 'basis/group/USER_DELEGATE_FAILURE';
export const MY_LIST = createAsyncAction(
MY_LIST_REQUEST,
MY_LIST_SUCCESS,
@ -149,7 +154,6 @@ export const GROUP_JOINLIST = createAsyncAction(
GROUP_JOINLIST_FAILURE
)<GroupState, { data: JoinGroupData[]; count: number }, AxiosError>();
export const GROUP_JOIN = createAsyncAction(
GROUP_JOIN_REQUEST,
GROUP_JOIN_SUCCESS,
@ -186,6 +190,12 @@ export const USER_UPDATE = createAsyncAction(
USER_UPDATE_FAILURE
)<UserGroupData, string, AxiosError>();
export const USER_DELEGATE = createAsyncAction(
USER_DELEGATE_REQUEST,
USER_DELEGATE_SUCCESS,
USER_DELEGATE_FAILURE
)<UserGroupState, string, AxiosError>();
const actions = {
MY_LIST,
JOIN_LIST,
@ -202,6 +212,7 @@ const actions = {
APPROVAL_UPDATE,
USER_LIST,
USER_UPDATE,
USER_DELEGATE,
GROUP_MYLIST
};

14
src/modules/basis/group/apis/basisGroupApi.ts

@ -5,7 +5,8 @@ import {
AprvGroupData,
GroupData,
JoinGroupData,
UserGroupData
UserGroupData,
UserGroupState
} from '../models/basisGroupModel';
// import { ReponseControlGpHistory } from '../models/controlGpModel';
@ -28,13 +29,11 @@ export const groupAPI = {
return await axios.get(`api/bas/group/detail/${id}`);
},
createGroup: async (data: GroupData) => {
const res = await axios.post('api/bas/group/create', data);
return res;
},
updateGroup: async (data: GroupData) => {
const res = await axios.put('api/bas/group/update', data);
return res;
@ -60,13 +59,11 @@ export const groupAPI = {
return await axios.get(`api/bas/group/join/list${queryString}`);
},
createJoinGroup: async (data: JoinGroupData) => {
const res = await axios.post('api/bas/group/join/create', data);
return res;
},
updateJoinGroup: async (data: JoinGroupData) => {
const res = await axios.put('api/bas/group/join/update', data);
return res;
@ -79,7 +76,6 @@ export const groupAPI = {
return await axios.get(`api/bas/group/aprv/list${queryString}`);
},
updateAprvGroup: async (data: AprvGroupData) => {
const res = await axios.put('api/bas/group/aprv/update', data);
return res;
@ -92,9 +88,13 @@ export const groupAPI = {
return await axios.get(`api/bas/group/user/list${queryString}`);
},
updateUser: async (data: UserGroupData) => {
const res = await axios.put('api/bas/group/user/update', data);
return res;
},
delegateUser: async (data: UserGroupState) => {
const res = await axios.put('api/bas/group/user/delegate', data);
return res;
}
};

3
src/modules/basis/group/models/basisGroupModel.ts

@ -61,6 +61,9 @@ export interface AprvGroupData {
aprvlUserId: String;
}
export interface UserGroupState {
userGroupData: UserGroupData[] | undefined;
}
export interface UserGroupData {
cstmrGroupSno: number;
groupId: string;

35
src/modules/basis/group/sagas/basisGroupSaga.ts

@ -461,6 +461,40 @@ function* updateUserSaga(
}
}
function* delegateUserSaga(
action: ActionType<typeof Actions.USER_DELEGATE.request>
) {
try {
const saveData = action.payload;
const res = yield call(Apis.groupAPI.delegateUser, saveData);
const { data } = res;
if (data.result) {
yield put(
MessageActions.IS_MESSAGE({
messageCode: SAVE_MESSAGE.code,
message: SAVE_MESSAGE.message,
isHistoryBack: false,
isRefresh: true
})
);
} else {
throw Error;
}
} catch (error) {
yield put(
MessageActions.IS_ERROR({
errorCode: ERROR_MESSAGE.code,
errorMessage: ERROR_MESSAGE.message,
isHistoryBack: false,
isRefresh: false
})
);
// yield put(Actions.GROUP_UPDATE.failure(error));
}
}
export function* basGroupSaga() {
yield takeEvery(Actions.MY_LIST.request, listMyGroupSaga);
yield takeEvery(Actions.JOIN_LIST.request, listMyJoinSaga);
@ -478,4 +512,5 @@ export function* basGroupSaga() {
yield takeEvery(Actions.GROUP_JOIN_UPDATE.request, updateJoinGroupSaga);
yield takeEvery(Actions.APPROVAL_UPDATE.request, updateAprvSaga);
yield takeEvery(Actions.USER_UPDATE.request, updateUserSaga);
yield takeEvery(Actions.USER_DELEGATE.request, delegateUserSaga);
}

Loading…
Cancel
Save