Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Ресурсы Список джемов      Поиск   

Ruby On Rails in UA/Вопросы по программированию на ROR/restful authentication

2008-06-10 15:45:45 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
restful authentication
  •  
Привет всем! Установил restful authentication, с ней все клёво.
Дальше так, логинюсь и попадаю на страницу юзера, users/mypage/:id и в контроллере пишу


Вопрос, как реализовать чтобы после логининга я попадал на эту станицу юзера и не требовалось исползовать params[:id]

Понятно, что в таком случае надо использовать session[:id] или вроде этого, но

Пробовал писать session[:user] в mypage


но появляються такие баги


Как быть, может есть другие варианты, просто если использовать первый вариант

users/mypage/:id то при смене :id данный юзер попадает на страницу другого эзера где может изменять его конфиги, вот как не продуманно. Надеюсь понятно хоть кому-нибудь моя проблема.
,
2008-06-08 09:18:55 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: restful authentication
  •  
Объясню лучше, чем вчера (хотел спать :) )

К примеру у вас на форуме сслыка на
http://rubyclub.com.ua/users/edit/:id Где :id - это мой ID на этом форуме

Как только я сменяю :id в строке браузера на другой :id, то меня редиректит на user/list


Вопрос, как обработать такой rescue? Учитаваю, что у меня resful_authanticated плагин,

где сказано использовать current_user.id для вышего описанного случаю, но это не работает, current_user.id выдает произвольное число а не id юзера

Помогите, я уже 20 часов ищу ответ на этот вопрос, и думал столько же.
2008-06-10 13:28:42 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1104
Регистр: 2007-03-13
его блог 37 сообщ.
RE: RE: restful authentication
  •  
Во первых если ты залогинился, то у тебя при этой утентификации кажется хранится объект пользователя а не его id, если я ошибаюсь тогда все нормально бери id из сессии лии current_user.id и ищи его в базе, но перед поиском добавь проверку того что id установлено, и принадлежит этому пользователю.
2008-06-10 11:51:17 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: RE: restful authentication
  •  


Я понимал, что ты сказал, но скажи пожалуйста, как его заюзать. Мои попытки использовать ControllerHelper ни к чему не привели.


Не всё нормально, current_user.id выдает бугагу, а не id юзера. В UserControl пишу
@user = User.find_by_id sessions[:id] или @user = User.find_by_id current_user.id




Поясни на примере (но подробно и понятно), так как я не понимаю с полу слова.


И вообще, до этого я писал :id => session[:id] при обычной регистралки с использованием ссесии и всё было тип топ, а почему в RESTFUL authentication я не могу проделывать тоже самое, вель там тоже используются сессии.

,
2008-06-06 20:17:06 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1104
Регистр: 2007-03-13
его блог 37 сообщ.
RE: restful authentication
  •  
application.rb

2008-06-07 05:49:21 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: restful authentication
  •  
Провильный вариант ответа сделать include AuthenticatedSystem в соответствующий контроллер
2008-06-06 03:59:27 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
Почему на мало нихрена не отправляется? Или меня забыли предупредить, что нада ещё с бубном попрыгать? Сил уже нет искать этот баг!!!
2008-06-10 02:38:45 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: restful authentication
  •  
покажи весь код который относиться с отправке мыла. У меня тоже были проблемы, но были решены

here environment.rb


here user_mailer.rb


here user_observer.rb


Все работает.
2008-06-10 06:49:33 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
Меня больше интерисуют настройки smtp. Я пробую разные варианты,. но понятия не имею, как их использовать. Или они ставятся любые, или надо иметь аккаунт на каком-то почтовике. Ссудя по твоему коду, они могут быть любыми.
У меня всё точно так же как у тя. :(
2008-06-08 10:01:15 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: restful authentication
  •  
дык, понятно почему у тебя не работает, просто надо в настройках smtp указывать реальный ник и пас твоего почтового сервака, иначе в чем смысл )). Вот к примеру у меня есть аккуант на mail.gorodok.net, у этого почтовика есть smpt по порту 25, я прописываю в рельсах



2008-06-10 07:43:29 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
пробовал и реальный тоже, и смотрел по какому порту они работают.
щас попробую ещё сервак перезапустить, мож это из-за этого.
2008-06-10 07:10:04 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
о, блин, прогресс, уже хотя бы приложение ломается:
ActionController::InvalidAuthenticityToken
2008-06-10 07:12:01 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
В UsersController, метод create. Вот он:
2008-06-10 07:07:52 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: restful authentication
  •  
может у тебя отключены кукисы?
2008-06-10 07:26:27 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
да нет, включены.
2008-06-10 00:22:52 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
Может я делаю что-то не так?
Вот мои действия:
1. Запускаю генератор:

2. В config/enviroment.rb дописываю:


По-моему, всё.
Подскажите, правильно ли это.
2008-06-05 13:31:29 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
Ну и ещё на всякий случай узнаю: письмо на мыло должно отправляться после добавления нового пользователя (в моём случае это ссылка users/new)?
2008-06-04 07:53:46 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: restful authentication
  •  
всё кульно, и как, заработало?
2008-06-04 06:31:54 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
нет, не работает. мыло не отправляется. кстати я пробовал написать простое приложение с одним только методом отправки мыла, та же история :(
2008-06-08 04:43:58 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
Заработало. Поменял delivery_method на sendmail и соответственно убрал настройки smtp.
Теперь другой вопрос. Так и не разобрался среди всей этой кучи методов, что отвечает за то, что пользователь авторизирован(т.е. ввёл логин/пароль и вошёл на сайт)?
2008-06-05 11:46:07 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: restful authentication
  •  
глянь в папку lib, файл authenticated_system.rb, там куча функций и там что-то, точно не помню дома на компе все. если английский знаешь то сразу поймешь что за функция
2008-06-03 16:55:56 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
:) я б не спрашивал, если б нашёл необходимое.
logged_in?
active?
current_user
authorized?
это всё не подходит. как я понимаю доступ к сайту осуществляется только после активации аккаунта, а все эти методы возвращают истину или объект после регистрации, когда письмо с активацией ещё даже не дошло.
2008-06-06 11:45:56 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: restful authentication
  •  
Особо хочу отметить про функцию logged_in?
она действительно проверяет залогиненный пользователь или нет, но после регистрации (без активации) она считает пользователя залогиненным, а не должна.
2008-06-06 07:09:59 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: restful authentication
  •  
Во-первых, юзер который не активирован, он и не залогинеться. Так что претензии к функции логгд_ин отпали.(функция которая проверяет активирован ли юзер лежит в контроллере)
Во-вторых, тебе нужно узнать, что юзер в онлайне? Если да то просто надо написать такую функцию, если нет, logged_in тебе в руки :)
2008-06-05 08:00:22 Ответить  
cthulhu
Станіслав Погребняк
Адрес: Жовті Води
Сообщений: 23
Регистр: 2008-02-09
его блог 1 сообщ.
RE: restful authentication
  •  
Подскажите пожалуйста как заставить правильно работать контроллер session чтобы он возвращал откуда залогинился. Т.Е. я хочу залогиниться и из произвольного места вызываю логин. А он возвращает на root страницу.
2008-06-05 23:18:14 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: restful authentication
  •  
в route.rb


в методе



соотвественно если index.html.erb у тебя есть root

А вообще читай тут htpp://routes.groovie.org/manual.html
и поиском учись пользоваться.
2008-06-06 13:29:38 Ответить  
cthulhu
Станіслав Погребняк
Адрес: Жовті Води
Сообщений: 23
Регистр: 2008-02-09
его блог 1 сообщ.
RE: RE: RE: restful authentication
  •  
Спасибо за большое ценности совет. Но если внимательно почитать мой пост то можно обнаружить, что я совершенно о другом спрашивал.
2008-06-06 10:41:14 Ответить  
cthulhu
Станіслав Погребняк
Адрес: Жовті Води
Сообщений: 23
Регистр: 2008-02-09
его блог 1 сообщ.
RE: restful authentication
  •  
Постараюсь обьяснить поподробней что мне нужно.
Допустим есть у меня ресурс(типа люди). Смотреть можно всем. Для этого есть контроллер "люди" и актион, например, "смотреть". Но выполнять определенное действие только залогиненым (например "пожать руку"). Так вот, мне нужно чтобы можно было сделать link_to login_path на странице "смотреть" и после логина он вернулся на страницу "смотреть".
Стандартные фильтры restful authentication не подходят, так как урл формируется динамически и до логина он совершенно не такой как после. Т.Е. если сделать фильтр на пожать руку то не работает.
Вот.
2008-06-07 22:25:42 Ответить  
solbeg
Ochirov Tsyren
Адрес: Новосибирск
Сообщений: 38
Регистр: 2008-03-17
его блог 1 сообщ.
RE: RE: restful authentication
  •  
Почему бы не сделать постоянной сслыку?
2008-06-10 07:13:14 Ответить  
cthulhu
Станіслав Погребняк
Адрес: Жовті Води
Сообщений: 23
Регистр: 2008-02-09
его блог 1 сообщ.
RE: RE: RE: restful authentication
  •  
Да это бы решило пару проблем. Но к сожалению так нельзя.
Назадназад Новыйновый Ответитьответить
Ключевые слова:
Гости: 88 Онлайн: 0
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008