member Controller에 addMemberToGroup($member_srl, $group_srl) 함수를 사용하여 $member_srl 유저에게 $group_srl 그룹을 부여하는 코드를 짰습니다
그런데 이제는 권한을 회수하기 위해 권한 제거 함수같은 것을 사용하려고 했는데요
컨트롤러에는 그룹 추가와 수정 정도만 있는거 같고, 제거함수는 없는거 같은데요
혹시 그룹을 제거하는 함수가 있나요?
PHP | PHP 7.4 |
---|---|
CMS | Rhymix 2.x |
member Controller에 addMemberToGroup($member_srl, $group_srl) 함수를 사용하여 $member_srl 유저에게 $group_srl 그룹을 부여하는 코드를 짰습니다
그런데 이제는 권한을 회수하기 위해 권한 제거 함수같은 것을 사용하려고 했는데요
컨트롤러에는 그룹 추가와 수정 정도만 있는거 같고, 제거함수는 없는거 같은데요
혹시 그룹을 제거하는 함수가 있나요?
이거 그룹을 재지정하는 코드가 아닌거 같습니다
replaceMemberGroup 함수에 계속 대입을 해보다 안되서 코드를 쫙 뜯어봤는데요
member.deleteMembersGroup 쿼리를 통해서 member_srl이 일치하는 사람의 그룹을 싹 삭제해주고요
이후에 다시 member.addMemberToGroup 쿼리를 통해서 다시 그룹을 부여해주는거 같습니다..
+) 앗 함수 설명을 보니 Available only when a member has a single group 이라네요
++) 아마 regdate를 갱신하는 용도로 사용된거 같은데, 의미가 있는지는 모르겠네요
깃헙에서 해당 함수를 사용하는 코드를 찾아봤는데요
저 함수를 사용하는 사용처가 안보입니다;
지금 라이믹스에서 안쓰이는 코드인거 같은데요?
+)
DELETE FROM 'rx_member_group_member' WHERE group_srl = {삭제할 그룹 srl} AND member_srl = {member_srl};
DB에 저장된걸보니 array 형태도 아니고 한줄에 하나씩 들어가있는 형태네요
그냥 DB에서 삭제하고 캐시만 갱신해주면 되는거 아닌가요?
https://github.com/rhymix/rhymix/blob/a97f6d6a05d139347f621e0e02a1e4860de2ad35/modules/member/member.admin.controller.php#L1333 이거 쓰심되겟네요
https://github.com/rhymix/rhymix/blob/master/modules/member/member.admin.controller.php#L738
결제가 취소되었다는 말은 결제가 이루어지지 않았다고 보셔야 하는거 아닐까요?
쇼핑몰에서 결제가 되었다는건 일단 결제가 정상적으로 이루어져 돈이 해당 업체에게 정상적으로 넘어갓다는 순간을 기준으로 잡지요.
근데 취소라는건 결제하는 도중에 돈을 지불하지 않았다라는 것인데.. 그 전에 권한을 부여한거라면.. 설계에서 처음부터 잘못 잡으신 것 같은데요..ㅠㅠ
실제로 결제가 이루어져서 완벽하게 결제처리가 완료되었다는 부분에서(실제로 관리자에게 돈이 들어가거나 혹은 가상계좌방식의 경우 해당 계좌로 해당금액이 완벽하게 입금이 완료되었을때 해당 액션콜백에서) 권한이 부여되는것이 맞고, 그 외 문제는 환불의 문제로 보셔야 합니다. 환불이랑 결제취소랑은 엄연히 다르잖아요. 환불의 영역에서 고객이 환불을 요청했을때 해당그룹을 제거 하는 방향이 필요하죠.
https://github.com/bjrambo/nurigo/commit/7e063d68820beae3d681bc49e60348e8e9f4ee48#diff-e3ab7ad8b1f143d10d7261236288ee1f21416665b2a8a1f3142f94cd996c6716
실제로 누리고 develop브랜치에 적용된 취소 기능인데요 다른분께서 코드 기여해주신 덕분에 해당 기능이 여기에도 들어오게 되었는데 해당코드들 확인해보시면 취소가 거의 환불급으로 생각됩니다.
즉 이런 경우가 아닌 실제 결제중간에 취소(결제를 하지 않았다)는 액션에서는 실제로 권한 부여가 이루어지지 않아야 할 것 같아요.
(제가 전체적으로 다 보진 못했지만.. 취소라는 단어에 이게 환불인건지 아니면 실제로 결제가 완료된 건에서 배송되기전에 주문을 취소한것인지 구분이 안되어서 결제취소라는 키워드로 우선 답변 달아드렸습니다!)
혹시나 아니였으면 죄송합니다 (_ _ )
그룹 제거 함수는 없더라구요.
전 특정기간 후 그룹 회수해야 할때
member.deleteMemberGroupMember 사용해서 회수하고 캐시삭제 하는 방식으로 구현했었습니다.
써서 원하는 그룹만 빼고 다른 그룹으로 바꾸시면 될듯합니다.
그룹은 array형태로 추가 하는 개념이기 때문에 해당 그룹만 콕찝어서 빼는게 사실상 불가능하진 않는데 귀찮고요, 기존 그룹정보 싹다 지워서 새롭게 재정의 해주는게 좋다고 판단하고 위 매소드를 만든 것 같네요.