]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3646 fix transaction conflict with H2
authorSimon Brandhof <simon.brandhof@gmail.com>
Fri, 20 Jul 2012 14:02:19 +0000 (16:02 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Fri, 20 Jul 2012 14:02:19 +0000 (16:02 +0200)
sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java
sonar-server/src/main/webapp/WEB-INF/app/controllers/users_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/models/user.rb

index dcfc77861eae746e4e666412060ef4060635b44a..7c20de3883fb59b76a60ae384262dcd29924e502 100644 (file)
@@ -25,18 +25,30 @@ import org.sonar.api.resources.Resource;
 
 /**
  * Grant access to newly created projects.
- *
+ * <p/>
  * <p>This component is not supposed to be called by standard plugins.</p>
  *
  * @since 3.2
  */
 public interface ResourcePermissions extends BatchComponent, ServerComponent {
 
+  /**
+   * Limitation - the resource id is used instead of logical key.
+   */
   boolean hasRoles(Resource resource);
 
+  /**
+   * Limitation - the resource id is used instead of logical key.
+   */
   void grantDefaultRoles(Resource resource);
 
+  /**
+   * Limitation - the resource id is used instead of logical key.
+   */
   void grantUserRole(Resource resource, String login, String role);
 
+  /**
+   * Limitation - the resource id is used instead of logical key.
+   */
   void grantGroupRole(Resource resource, String groupName, String role);
 }
index 1e4fe52d4cda9576c03c02a10b17068edb11907e..b4af2a621ba8fa794a45a6496784e3978f111706 100644 (file)
@@ -43,6 +43,7 @@ class UsersController < ApplicationController
     else
       user=prepare_user
       if user.save
+        user.notify_creation_handlers
         flash[:notice] = 'User is created.'
       end
       to_index(user.errors, nil)
@@ -56,6 +57,7 @@ class UsersController < ApplicationController
     cookies.delete :auth_token
     @user=prepare_user
     if @user.save
+      @user.notify_creation_handlers
       flash[:notice] = 'Please log in now.'
       redirect_to home_url
     else
@@ -119,6 +121,7 @@ class UsersController < ApplicationController
     user = User.find_by_login(params[:user][:login])
     if user
       user.reactivate!(java_facade.getSettings().getString('sonar.defaultGroup'))
+      user.notify_creation_handlers
       flash[:notice] = 'User was successfully reactivated.'
     else
       flash[:error] = "A user with login #{params[:user][:login]} does not exist."
index c70d33985a4cc50f3945d9f64b08ff4d6c928bd9..08618b572d37007002d3635404e0b4f8aecda305 100644 (file)
@@ -23,7 +23,6 @@ class User < ActiveRecord::Base
 
   FAVOURITE_PROPERTY_KEY='favourite'
 
-  after_create :on_create
   has_and_belongs_to_many :groups
 
   has_many :user_roles, :dependent => :delete_all
@@ -106,7 +105,6 @@ class User < ActiveRecord::Base
     end
     self.active = true
     save!
-    on_create
   end
 
   def self.find_active_by_login(login)
@@ -204,9 +202,7 @@ class User < ActiveRecord::Base
   end
 
 
-  private
-
-  def on_create
+  def notify_creation_handlers
     Java::OrgSonarServerUi::JRubyFacade.getInstance().onNewUser({'login' => self.login, 'name' => self.name, 'email' => self.email})
   end
 end