Как автоматически выйти из системы вошедшего в систему пользователя, который решает удалить свою учетную запись? - PullRequest
1 голос
/ 24 февраля 2012

Я работаю с Граалем. Я создал сервис, который будет удалять учетную запись конкретного пользователя. Если вошедший в систему пользователь решает удалить свою учетную запись, на его адрес электронной почты будет отправлена ​​ссылка для проверки, после того как он щелкнет эту ссылку, его учетная запись будет удалена из базы данных, и в то же время он будет автоматически отключен от системы, и будут перенаправлены на домашнюю страницу веб-сайта.

Это мой код при удалении аккаунта. Кто-нибудь может дать мне код о том, как автоматически выйти из системы в данный момент вошедшего в систему пользователя?

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

1 Ответ

2 голосов
/ 24 февраля 2012

В большинстве случаев достаточно просто позвонить

session.invalidate()

.см. Grails Doc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...