Commit c05210b2172db71ce158ef4177f8493a81166e07
Committed by
Antonio Terceiro
1 parent
8a884615
Exists in
master
and in
29 other branches
People must have a name now
* Not allowing people to signup without a name * Adding a migrate to set identifier as name for people that are already without a name * Changing the field "Full Name" to "Name" and to become red when not filled * Adding new db:schema (ActionItem1352)
Showing
9 changed files
with
38 additions
and
26 deletions
Show diff stats
app/controllers/public/account_controller.rb
... | ... | @@ -57,7 +57,6 @@ class AccountController < ApplicationController |
57 | 57 | @terms_of_use = environment.terms_of_use |
58 | 58 | @user.person_data = params[:profile_data] |
59 | 59 | @person = Person.new(params[:profile_data]) |
60 | - @person.name = @user.login | |
61 | 60 | @person.environment = @user.environment |
62 | 61 | if request.post? && params[self.icaptcha_field].blank? |
63 | 62 | @user.signup! | ... | ... |
app/models/person.rb
... | ... | @@ -184,14 +184,6 @@ class Person < Profile |
184 | 184 | ] |
185 | 185 | end |
186 | 186 | |
187 | - def name | |
188 | - if !self[:name].blank? | |
189 | - self[:name] | |
190 | - else | |
191 | - self.user ? self.user.login : nil | |
192 | - end | |
193 | - end | |
194 | - | |
195 | 187 | has_and_belongs_to_many :favorite_enterprises, :class_name => 'Enterprise', :join_table => 'favorite_enteprises_people' |
196 | 188 | |
197 | 189 | def email_domain | ... | ... |
app/views/profile_editor/_person_form.rhtml
... | ... | @@ -0,0 +1,11 @@ |
1 | +class FixPeopleWithoutNames < ActiveRecord::Migration | |
2 | + def self.up | |
3 | + select_all("SELECT name, identifier FROM profiles WHERE name = '' or name IS NULL").each do |profile| | |
4 | + update("UPDATE profiles SET name = '%s' WHERE identifier = '%s'" % [profile['identifier'], profile['identifier']]) | |
5 | + end | |
6 | + end | |
7 | + | |
8 | + def self.down | |
9 | + say("Nothing to undo (cannot recover the data)") | |
10 | + end | |
11 | +end | ... | ... |
db/schema.rb
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 | # |
10 | 10 | # It's strongly recommended to check this file into your version control system. |
11 | 11 | |
12 | -ActiveRecord::Schema.define(:version => 78) do | |
12 | +ActiveRecord::Schema.define(:version => 79) do | |
13 | 13 | |
14 | 14 | create_table "article_versions", :force => true do |t| |
15 | 15 | t.integer "article_id" | ... | ... |
features/join_community.feature
... | ... | @@ -53,7 +53,7 @@ Feature: join a community |
53 | 53 | | Username | joseoliveira | |
54 | 54 | | Password | 123456 | |
55 | 55 | | Password confirmation | 123456 | |
56 | - | Full name | Jose Oliveira | | |
56 | + | Name | Jose Oliveira | | |
57 | 57 | And I press "Sign up" |
58 | 58 | And I should see "Are you sure you want to join Sample Community?" |
59 | 59 | When I press "Yes, I want to join" | ... | ... |
features/signup.feature
... | ... | @@ -11,7 +11,7 @@ Feature: signup |
11 | 11 | And I fill in "Username" with "josesilva" |
12 | 12 | And I fill in "Password" with "secret" |
13 | 13 | And I fill in "Password confirmation" with "secret" |
14 | - And I fill in "Full name" with "José da Silva" | |
14 | + And I fill in "Name" with "José da Silva" | |
15 | 15 | And I press "Sign up" |
16 | 16 | Then I should see "Thanks for signing up!" |
17 | 17 | |
... | ... | @@ -22,3 +22,25 @@ Feature: signup |
22 | 22 | Given I am logged in as "joaosilva" |
23 | 23 | And I go to signup page |
24 | 24 | Then I should be on Joao Silva's control panel |
25 | + | |
26 | + Scenario: user cannot register without a name | |
27 | + Given I am on the homepage | |
28 | + And I follow "Login" | |
29 | + And I follow "I want to participate" | |
30 | + And I fill in "e-Mail" with "josesilva@example.com" | |
31 | + And I fill in "Username" with "josesilva" | |
32 | + And I fill in "Password" with "secret" | |
33 | + And I fill in "Password confirmation" with "secret" | |
34 | + And I press "Sign up" | |
35 | + Then I should see "Name can't be blank" | |
36 | + | |
37 | + Scenario: user cannot change his name to empty string | |
38 | + Given the following users | |
39 | + | login | name | | |
40 | + | joaosilva | Joao Silva | | |
41 | + Given I am logged in as "joaosilva" | |
42 | + And I am on Joao Silva's control panel | |
43 | + And I follow "Profile Info and settings" | |
44 | + And I fill in "Name" with "" | |
45 | + When I press "Save" | |
46 | + Then I should see "Name can't be blank" | ... | ... |
test/factories.rb
... | ... | @@ -94,7 +94,7 @@ module Noosfero::Factory |
94 | 94 | :environment_id => environment_id, |
95 | 95 | }.merge(options) |
96 | 96 | user = fast_insert_with_timestamps(User, data) |
97 | - person = fast_insert_with_timestamps(Person, { :type => 'Person', :identifier => name, :user_id => user.id, :environment_id => environment_id }.merge(person_options)) | |
97 | + person = fast_insert_with_timestamps(Person, { :type => 'Person', :identifier => name, :name => name, :user_id => user.id, :environment_id => environment_id }.merge(person_options)) | |
98 | 98 | homepage = fast_insert_with_timestamps(TextileArticle, { :type => 'TextileArticle', :name => 'homepage', :slug => 'homepage', :path => 'homepage', :profile_id => person.id }) |
99 | 99 | fast_update(person, {:home_page_id => homepage.id}) |
100 | 100 | box = fast_insert(Box, { :owner_type => "Profile", :owner_id => person.id, :position => 1}) | ... | ... |
test/unit/person_test.rb
... | ... | @@ -270,18 +270,6 @@ class PersonTest < Test::Unit::TestCase |
270 | 270 | assert_equal 'José', p.name |
271 | 271 | end |
272 | 272 | |
273 | - should 'fallback to login when person_info is not present' do | |
274 | - p = create_user('randomhacker').person | |
275 | - p.name = nil | |
276 | - assert_equal 'randomhacker', p.name | |
277 | - end | |
278 | - | |
279 | - should 'fallback to login when name is blank' do | |
280 | - p = create_user('randomhacker').person | |
281 | - p.name = '' | |
282 | - assert_equal 'randomhacker', p.name | |
283 | - end | |
284 | - | |
285 | 273 | should 'have favorite enterprises' do |
286 | 274 | p = create_user('test_person').person |
287 | 275 | e = Enterprise.create!(:name => 'test_ent', :identifier => 'test_ent') | ... | ... |