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. 17
      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. 37
      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 state => state.groupState
); );
useEffect(() => {
if (user?.cstmrSno) {
dispatch(Actions.JOIN_LIST.request({ cstmrSno: user?.cstmrSno }));
}
}, [user]);
const { user } = useSelector(state => state.authState); const { user } = useSelector(state => state.authState);
const dispatch = useDispatch(); const dispatch = useDispatch();
@ -46,7 +40,7 @@ export const BasisGroupUsersContainer = props => {
{ {
name: '그룹명', name: '그룹명',
selector: 'groupNm', selector: 'groupNm',
minWidth: '102px', minWidth: '150px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return row?.groupNm; return row?.groupNm;
@ -74,7 +68,7 @@ export const BasisGroupUsersContainer = props => {
{ {
name: '사용자 ID', name: '사용자 ID',
selector: 'userId', selector: 'userId',
minWidth: '102px', minWidth: '150px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return row?.userId; return row?.userId;
@ -93,7 +87,7 @@ export const BasisGroupUsersContainer = props => {
{ {
name: '가입 일시', name: '가입 일시',
selector: 'joinDt', selector: 'joinDt',
minWidth: '102px', minWidth: '200px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return row?.joinDt; return row?.joinDt;
@ -102,7 +96,7 @@ export const BasisGroupUsersContainer = props => {
{ {
name: '권한 변경', name: '권한 변경',
// selector: 'cntrlStDate', // selector: 'cntrlStDate',
// minWidth: '102px', minWidth: '130px',
sortable: false, sortable: false,
cell: row => { cell: row => {
const my = joinList?.find((prev, idx) => { const my = joinList?.find((prev, idx) => {
@ -138,6 +132,7 @@ export const BasisGroupUsersContainer = props => {
onClick={() => handlerAdminConfirm(row?.cstmrGroupSno)} onClick={() => handlerAdminConfirm(row?.cstmrGroupSno)}
> >
운영자로 변경 운영자로 변경
{/* ADMIN */}
</Button.Ripple> </Button.Ripple>
); );
} }
@ -163,15 +158,46 @@ export const BasisGroupUsersContainer = props => {
// </Button.Ripple> // </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(() => { useEffect(() => {
if (user?.cstmrSno) { if (user?.cstmrSno) {
setParams({ dispatch(Actions.JOIN_LIST.request({ cstmrSno: user?.cstmrSno }));
...params, // setParams({
cstmrSno: user?.cstmrSno // ...params,
}); // cstmrSno: user?.cstmrSno
// });
// dispatch( // dispatch(
// Actions.USER_LIST.request({ // Actions.USER_LIST.request({
@ -181,9 +207,9 @@ export const BasisGroupUsersContainer = props => {
} }
}, [user]); }, [user]);
useEffect(() => { // useEffect(() => {
// console.log('changeParam >>>', params); // console.log('changeParam >>>', params);
}, [params]); // }, [params]);
useEffect(() => { useEffect(() => {
handlerSearch(); 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 () => { const handlerAuthSave = async () => {
if (saveData.length === 2) {
dispatch(Actions.USER_DELEGATE.request(saveData));
} else {
dispatch(Actions.USER_UPDATE.request(saveData)); dispatch(Actions.USER_UPDATE.request(saveData));
}
}; };
const handlerInput = e => { const handlerInput = e => {

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

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

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

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

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

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

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

@ -168,7 +168,7 @@ function* createGroupSaga(
isRefresh: false isRefresh: false
}) })
); );
} else{ } else {
throw Error; throw Error;
} }
} }
@ -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() { export function* basGroupSaga() {
yield takeEvery(Actions.MY_LIST.request, listMyGroupSaga); yield takeEvery(Actions.MY_LIST.request, listMyGroupSaga);
yield takeEvery(Actions.JOIN_LIST.request, listMyJoinSaga); 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.GROUP_JOIN_UPDATE.request, updateJoinGroupSaga);
yield takeEvery(Actions.APPROVAL_UPDATE.request, updateAprvSaga); yield takeEvery(Actions.APPROVAL_UPDATE.request, updateAprvSaga);
yield takeEvery(Actions.USER_UPDATE.request, updateUserSaga); yield takeEvery(Actions.USER_UPDATE.request, updateUserSaga);
yield takeEvery(Actions.USER_DELEGATE.request, delegateUserSaga);
} }

Loading…
Cancel
Save