질문/조언질답게시판
Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

member Controller에 addMemberToGroup($member_srl, $group_srl) 함수를 사용하여 $member_srl 유저에게 $group_srl 그룹을 부여하는 코드를 짰습니다

 

그런데 이제는 권한을 회수하기 위해 권한 제거 함수같은 것을 사용하려고 했는데요

 

컨트롤러에는 그룹 추가와 수정 정도만 있는거 같고, 제거함수는 없는거 같은데요

 

혹시 그룹을 제거하는 함수가 있나요?

  • profile
    replaceMemberGroup

    써서 원하는 그룹만 빼고 다른 그룹으로 바꾸시면 될듯합니다.

    그룹은 array형태로 추가 하는 개념이기 때문에 해당 그룹만 콕찝어서 빼는게 사실상 불가능하진 않는데 귀찮고요, 기존 그룹정보 싹다 지워서 새롭게 재정의 해주는게 좋다고 판단하고 위 매소드를 만든 것 같네요.
  • profile profile

    이거 그룹을 재지정하는 코드가 아닌거 같습니다

    replaceMemberGroup 함수에 계속 대입을 해보다 안되서 코드를 쫙 뜯어봤는데요

    member.deleteMembersGroup 쿼리를 통해서 member_srl이 일치하는 사람의 그룹을 싹 삭제해주고요

    이후에 다시 member.addMemberToGroup 쿼리를 통해서 다시 그룹을 부여해주는거 같습니다..

    +) 앗 함수 설명을 보니 Available only when a member has a single group 이라네요

     

    ++) 아마 regdate를 갱신하는 용도로 사용된거 같은데, 의미가 있는지는 모르겠네요

  • profile profile

    깃헙에서 해당 함수를 사용하는 코드를 찾아봤는데요

    저 함수를 사용하는 사용처가 안보입니다;

    지금 라이믹스에서 안쓰이는 코드인거 같은데요?

     

    +)

     

    DELETE FROM 'rx_member_group_member' WHERE group_srl = {삭제할 그룹 srl} AND member_srl = {member_srl};

    DB에 저장된걸보니 array 형태도 아니고 한줄에 하나씩 들어가있는 형태네요

    그냥 DB에서 삭제하고 캐시만 갱신해주면 되는거 아닌가요?

  • profile profile

    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

     

     

  • profile profile
    요건 사이트에 있는 그룹 자체를 삭제하는거 같습니다

    제가 원하는건 한 회원의 그룹을 수정 혹은 삭제하는것입니다
  • profile profile
    아 그러네요.-_-; 그냥 일정 그룹을 찾아서 지우는 쿼리 쓰셔야겠네요.-_-;;
  • profile profile
    https://github.com/rhymix/rhymix/blob/master/modules/member/member.controller.php#L3150

    요기코드 참고해서 group_srl_list 항목을 기존 회원이 가지고 있는 그룹 srl 에서 제외할 그룹srl을 뺀 것으로 배열 만드신다음
    위 링크처럼 기존 그룹 싹다 삭제 -> 새롭게 권한 부여하는 방법으로 하면 깔끔하겠네요.
  • profile profile
    https://github.com/Waterticket/rx-module-hotopay/commit/ed98facdccb52bbf92ac252545c3e717d44235eb

    직접 쿼리 실행시켜서 그룹을 삭제하고, 마지막에 회원 캐시 제거해서 해결했습니다

    감사합니다!
  • profile
    제가 제안 드렸던 기간제로 판매하는 방식의 기간 만료시 그룹 회수 하는 부분 기능 추가하시나보네요.
  • profile profile
    일단 결제 취소시에 그룹 회수가 필요해서 제작하고 있습니다

    결제 취소 자동화가 안되어있어서 ㅜㅜ
  • profile profile
    아.. 취소도 생각을 못하셨던 거네요.....
    어차피 그룹 회수가 필요한 상황이었던거네요.
  • profile profile
    제가 결제를 취소할 일이 없어서 그냥 넘겨두고 있었습니다

    다른기능 추가하다가 번뜩 생각나서 후딱 만들고 있습니다 ㅜㅜ
  • profile profile

    결제가 취소되었다는 말은 결제가 이루어지지 않았다고 보셔야 하는거 아닐까요?

    쇼핑몰에서 결제가 되었다는건 일단 결제가 정상적으로 이루어져 돈이 해당 업체에게 정상적으로 넘어갓다는 순간을 기준으로 잡지요.

    근데 취소라는건 결제하는 도중에 돈을 지불하지 않았다라는 것인데.. 그 전에 권한을 부여한거라면.. 설계에서 처음부터 잘못 잡으신 것 같은데요..ㅠㅠ

    실제로 결제가 이루어져서 완벽하게 결제처리가 완료되었다는 부분에서(실제로 관리자에게 돈이 들어가거나 혹은 가상계좌방식의 경우 해당 계좌로 해당금액이 완벽하게 입금이 완료되었을때 해당 액션콜백에서) 권한이 부여되는것이 맞고, 그 외 문제는 환불의 문제로 보셔야 합니다. 환불이랑 결제취소랑은 엄연히 다르잖아요. 환불의 영역에서 고객이 환불을 요청했을때 해당그룹을 제거 하는 방향이 필요하죠.

     

    https://github.com/bjrambo/nurigo/commit/7e063d68820beae3d681bc49e60348e8e9f4ee48#diff-e3ab7ad8b1f143d10d7261236288ee1f21416665b2a8a1f3142f94cd996c6716

     

    실제로 누리고 develop브랜치에 적용된 취소 기능인데요 다른분께서 코드 기여해주신 덕분에 해당 기능이 여기에도 들어오게 되었는데 해당코드들 확인해보시면 취소가 거의 환불급으로 생각됩니다.

     

    즉 이런 경우가 아닌 실제 결제중간에 취소(결제를 하지 않았다)는 액션에서는 실제로 권한 부여가 이루어지지 않아야 할 것 같아요.

     

    (제가 전체적으로 다 보진 못했지만.. 취소라는 단어에 이게 환불인건지 아니면 실제로 결제가 완료된 건에서 배송되기전에 주문을 취소한것인지 구분이 안되어서 결제취소라는 키워드로 우선 답변 달아드렸습니다!)

    혹시나 아니였으면 죄송합니다 (_ _ )

  • profile profile
    회원의 결제 취소가 아니라 관리자가 환불하는 기능을 말한것이였습니다

    단어 선택에 혼동이 있었네요 ㅜㅜ

    일단 회원이 결제를 완료한 순간부터 회원이 취소할 수 있는 방법은 만들지 않았고요, 관리자가 대시보드에서 직접 환불을 진행할 수 있도록 제작하였습니다.

    저는 환불 = 결제 취소라고 생각을 하고 말을 했던건데 생각해보니 엄연히 다른 기능이라 단어 수정하겠습니다!
  • profile profile
    회원이 환불을 요청-> 관리자가 그걸 수락 or 배송진행 여부를 선택할 수 있도록 방안 마련하는것이 좀 더 좋을 것 같네요 :)
  • ?

    그룹 제거 함수는 없더라구요.
    전 특정기간 후 그룹 회수해야 할때
    member.deleteMemberGroupMember 사용해서 회수하고 캐시삭제 하는 방식으로 구현했었습니다.