2011-12-16 4 views
4

Вид новичков Rails здесь. Мое приложение использует Devise для аутентификации. То, что мне нужно, это разрешить пользователям, после входа в систему, создавать других пользователей, принадлежащих к той же организации, что и он.Разрешить пользователям создавать другие пользователи в Devise?

Проблема заключается в том, что я не могу просто использовать стандартную форму регистрации по умолчанию, так как она не позволяет мне получить доступ к ней при входе в систему (я думаю, что могу переопределить это, создав собственный пользовательский контроллер?).

Плюс, таблица пользователя имеет organization_id (автоматически создается при регистрации), и мне нужна форма для передачи current_user.organization_id для organization_id, и форма по умолчанию не позволит мне это сделать.

Любые предложения?

ответ

4

Вы должны создать пользовательскую форму, которая будет иметь все необходимые пользовательские поля и передать значения формы к одному из контроллеров, которые будут принимать Params что-то вроде этого:

def create 
    User.create!({:email => params[:email], :roles => ["role/organization here"], :password => params[:password], :password_confirmation => params[:password_confirmation] }) 
end 

В дополнение к этому вы должны обеспечить это действие одним из before_filter, который будет проверять, зарегистрирован ли пользователь в настоящее время и может ли он создавать новых пользователей?

Надеюсь, что это поможет.

+0

В конечном итоге я пошел с Authlogic, потому что Devise давал мне слишком много проблем на стороне контроллера. Я также делал все по-другому. Но я все же принял ваше предложение создать другую форму и сохранить ее в частичном. Спасибо :) – cdotfeli

+0

Рад, что это сработало для вас! :) –

Смежные вопросы