*/
public class DatabaseVersion implements BatchComponent, ServerComponent {
- public static final int LAST_VERSION = 430;
+ public static final int LAST_VERSION = 431;
public static enum Status {
UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('418');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('419');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('430');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('431');
INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '2011-09-26 22:27:48.0', '2011-09-26 22:27:48.0', null, null);
ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2;
#
# -- Mandatory parameters
# 'login' is the user identifier
+ # 'name' is the user display name
# 'password' is the user password
# 'password_confirmation' is the confirmed user password
#
# -- Optional parameters
- # 'name' is the user display name
# 'email' is the user email
#
# -- Example
- # curl -X POST -v -u admin:admin 'http://localhost:9000/api/users/create?login=user&password=user_pw&password_confirmation=user_pw'
+ # curl -X POST -v -u admin:admin 'http://localhost:9000/api/users/create?login=user&name=user_name&password=user_pw&password_confirmation=user_pw'
#
- # since 3.7
+ # since SonarQube 3.7
+ # SonarQube 4.0 update : name is now mandatory
#
def create
verify_post_request
include NeedAuthorization::ForUser
include NeedAuthentication::ForUser
- validates_length_of :name, :maximum => 200, :allow_blank => true, :allow_nil => true
+ validates_presence_of :name
+ validates_length_of :name, :maximum => 200, :unless => 'name.blank?'
+
validates_length_of :email, :maximum => 100, :allow_blank => true, :allow_nil => true
# The following two validations not needed, because they come with Authentication::ByPassword - see SONAR-2656
# anything else you want your user to change should be added here.
attr_accessible :login, :email, :name, :password, :password_confirmation
- def name(login_if_nil=false)
- result=read_attribute :name
- result.blank? ? login : result
- end
def email=(value)
write_attribute :email, (value ? value.downcase : nil)
<li>
- <a href="#" onclick="showDropdownMenu('user-panel'); return false;" class="link-more"><%= current_user.name(true) -%></a>
+ <a href="#" onclick="showDropdownMenu('user-panel'); return false;" class="link-more"><%= current_user.name -%></a>
<div id="user-panel" class="dropdown-menu" style="display: none">
<ul>
--- /dev/null
+#
+# SonarQube, open source software quality management tool.
+# Copyright (C) 2008-2013 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# SonarQube is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# SonarQube is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
+#
+# @since SonarQube 4.0
+#
+class MigrateUsersNames < ActiveRecord::Migration
+
+ class User < ActiveRecord::Base
+ end
+
+ def self.up
+ User.reset_column_information
+
+ User.find(:all).each do |user|
+ if user.name.blank?
+ user.name = user.login
+ user.save!
+ end
+ end
+
+ end
+
+end