2012-02-24 3 views
1

나는 grails로 일하고있다. 특정 사용자의 계정을 삭제할 서비스를 만들었습니다. 로그인 한 사용자가 자신의 계정을 삭제하기로 선택하면 확인 링크가 그의 이메일 주소로 보내집니다. 링크를 클릭하면 그의 계정이 데이터베이스에서 제거되고 자동으로 로그 아웃됩니다. 시스템으로 전송되며 웹 사이트의 홈 페이지로 리디렉션됩니다.로그인 한 사용자를 자동 로그 아웃하는 방법은 계정을 삭제하겠습니까?

이것은 내 코드를 삭제하는 코드입니다. 누구든지 현재 로그인 한 사용자를 자동으로 로그 아웃하는 방법에 대한 코드를 나에게 줄 수 있습니까? 대부분의 경우

class AccountDeletionService { 

    static transactional = true 
    def auditLogService 
    def springSecurityService 

    def delete(Registrant registrant, String key) { 
     if(key && registrant?.accountDeletionKey == key){ 

      def account = springSecurityService.getCurrentUser() 
      def loggeduser = account.id 

      RegistrantEligibilityInformation.executeUpdate(
       "delete RegistrantEligibilityInformation as rei where rei.registrant in (" + 
       "select reg from Registrant as reg where reg.account.id=:loggeduser)",[loggeduser:loggeduser]) 
      RegistrantEducationInformation.executeUpdate(
       "delete RegistrantEducationInformation as reduc where reduc.registrant in (" + 
       "select reg from Registrant as reg where reg.account.id=:loggeduser)",[loggeduser:loggeduser]) 
      Registrant.executeUpdate("delete Registrant as reg where reg.account.id=:loggeduser",[loggeduser:loggeduser]) 
      AccountRole.executeUpdate("delete AccountRole as actrole where actrole.account.id=:loggeduser)",[loggeduser:loggeduser]) 
      Account.executeUpdate("delete Account as act where act.id=:loggeduser)",[loggeduser:loggeduser]) 


     } else return false 
    } 
} 

답변

2

, 단순히 충분해야한다

session.invalidate() 

를 호출. grails doc

+0

어떻게 구현할 수 있습니까? Config.groovy 파일에 구성을 설정해야합니까? 또는 javax.servlet.http.HttpSession? – chemilleX3

+0

컨트롤러에서 세션 인스턴스를 사용할 수 있습니다. –