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
    }
}
4

1 に答える 1

2

ほとんどの場合、単に呼び出す

session.invalidate()

十分なはずです。grails のドキュメントを参照してください

于 2012-02-24T01:11:56.190 に答える