Devise logout

Witam.
Jest możliwość w devise wylogowania innego usera?
Chodzi mi o to że mam listę userów i chciałbym usunąć sesję usera o konkretnym user_id.

sprawdź http://rubydoc.info/github/plataformatec/devise/master/Devise/Controllers/Helpers#sign_out-instance_method

Nie wiem czy o to chodziło michu88.

michu88: chodzi Ci o to, że chcesz wylogować jakiegoś użytkownika, który korzysta z Twojego serwisu, np. wykonując jakieś polecenie z konsoli na serwerze?

W kontrolerze:

sign_out User.find params[:id]

niestety z konsoli do tego helpera jest się trudno dostać.

Z konsoli jest zbędne, chodzi mi głównie o to że jak admin dokonuje jakiejś zmiany na koncie usera to żeby go wylogowało.
Z tego co widziałem linki to o to mi chodziło w domu sprawdzę dzięki.

Jednak pomyłka wylogowuje ale tylko mnie user którego id podaje nadal zostaje.

[quote=michu88]Z konsoli jest zbędne, chodzi mi głównie o to że jak admin dokonuje jakiejś zmiany na koncie usera to żeby go wylogowało.
Z tego co widziałem linki to o to mi chodziło w domu sprawdzę dzięki.

Jednak pomyłka wylogowuje ale tylko mnie user którego id podaje nadal zostaje.[/quote]
No właśnie o to mi chodziło :wink: Pisząc z “z konsoli” miałem na myśli, że chcesz wylogować jakiegoś użytkownika, który jest zalogowany w przeglądarce, do której nie masz dostępu, źle się wyraziłem. Jak spojrzysz w kod tej metody to zobaczysz dlaczego tak się dzieje - jak nawet podasz tam użytkownika, którego chcesz wylogować, to devise wyciąga tylko z tego obiektu ‘scope’. Tzn. równie dobrze możesz przekazać :users (czy jakiego tam scope’a używasz) i będzie to samo.

Jeżeli trzymasz sesje w cookies, to nie ma prostego sposobu na wylogowanie usera. Musiałbyś napisać jakiś before_filter w kontrolerze, który sprawdza czy ma danego usera wylogować i wylogowuje przy próbie dostępu do jakiejś akcji. Trochę prościej jest jak masz sesje w bazie danych czy np. w redisie, wtedy możesz je modyfikować na bieżąco, ale też nie sądzę, żeby była do tego jakaś jedna prosta metoda.

Może zrób sobie table, gdzie będziesz przechowywał user_id. Gdy będziesz chciał kogoś wylogować dodaj tam wpis i potem w before_filter sprawdzaj czy w bazie jest current_user.id kasuj wpis i wyloguj usera.