2012-02-24 86 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 2012-02-29 03:58:31

+0

會話實例在您的控制器中可用。 – 2012-03-02 02:41:28

相關問題