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