ACK

----- Original Message -----
From: jprov...@redhat.com
To: deltacloud-devel@lists.fedorahosted.org
Sent: Tuesday, August 10, 2010 3:20:31 PM GMT +01:00 Amsterdam / Berlin / Bern 
/ Rome / Stockholm / Vienna
Subject: [deltacloud-devel] [PATCH aggregator] Fixed Bug 619838 - display 
errors when user registration fails

From: Jan Provaznik <jprov...@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
-- 
1.7.0.1

_______________________________________________
deltacloud-devel mailing list
deltacloud-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/deltacloud-devel
_______________________________________________
deltacloud-devel mailing list
deltacloud-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to