From 1db576b3cbfb1b9666290162203912ffaa5b8376 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Fri, 20 Jul 2012 16:02:19 +0200 Subject: [PATCH] SONAR-3646 fix transaction conflict with H2 --- .../sonar/api/security/ResourcePermissions.java | 14 +++++++++++++- .../WEB-INF/app/controllers/users_controller.rb | 3 +++ .../src/main/webapp/WEB-INF/app/models/user.rb | 6 +----- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java b/sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java index dcfc77861ea..7c20de3883f 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/security/ResourcePermissions.java @@ -25,18 +25,30 @@ import org.sonar.api.resources.Resource; /** * Grant access to newly created projects. - * + *

*

This component is not supposed to be called by standard plugins.

* * @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); } diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/users_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/users_controller.rb index 1e4fe52d4cd..b4af2a621ba 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/users_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/users_controller.rb @@ -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." diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/user.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/user.rb index c70d33985a4..08618b572d3 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/user.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/user.rb @@ -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 -- 2.39.5