From: Jan Provaznik jprovazn@redhat.com
--- src/app/controllers/users_controller.rb | 1 + src/app/services/registration_service.rb | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/app/controllers/users_controller.rb b/src/app/controllers/users_controller.rb index 19828db..b9d290a 100644 --- a/src/app/controllers/users_controller.rb +++ b/src/app/controllers/users_controller.rb @@ -34,6 +34,7 @@ class UsersController < ApplicationController flash[:notice] = "User registered!" redirect_back_or_default user_url(@user) else + flash[:warning] = "user registration failed: #{@registration.error}" render :action => :new end end diff --git a/src/app/services/registration_service.rb b/src/app/services/registration_service.rb index 2083803..37444ad 100644 --- a/src/app/services/registration_service.rb +++ b/src/app/services/registration_service.rb @@ -1,11 +1,16 @@ class RegistrationService + attr_reader :error
def initialize(user) @user = user end
def save - return false unless valid? + unless valid? + @error = "validation failed" + return false + end + begin User.transaction do @user.save! @@ -17,11 +22,17 @@ class RegistrationService @pool.quota_id = @quota.id @pool.save!
+ raise "Role 'Instance Creator and User' doesn't exist" unless + role = Role.find_by_name("Instance Creator and User") + Permission.create!({:user => @user, - :role => Role.find_by_name("Instance Creator and User"), + :role => role, :permission_object => @pool}) end rescue + Rails.logger.error $!.message + Rails.logger.error $!.backtrace.join("\n ") + @error = $!.message false end end