2012-02-24 85 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

相关问题