Commit 730ab70ddb3060d5bd19c0d4a999929e86858cdb
1 parent
263e47b2
Exists in
master
and in
28 other branches
ActionItem9: profile can be owner by an user
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@100 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
5 changed files
with
26 additions
and
4 deletions
Show diff stats
app/models/profile.rb
@@ -15,6 +15,7 @@ class Profile < ActiveRecord::Base | @@ -15,6 +15,7 @@ class Profile < ActiveRecord::Base | ||
15 | has_many :domains, :as => :owner | 15 | has_many :domains, :as => :owner |
16 | has_many :boxes, :as => :owner | 16 | has_many :boxes, :as => :owner |
17 | belongs_to :virtual_community | 17 | belongs_to :virtual_community |
18 | + belongs_to :user | ||
18 | 19 | ||
19 | validates_presence_of :identifier | 20 | validates_presence_of :identifier |
20 | validates_format_of :identifier, :with => /^[a-z][a-z0-9_]+[a-z0-9]$/ | 21 | validates_format_of :identifier, :with => /^[a-z][a-z0-9_]+[a-z0-9]$/ |
app/models/user.rb
1 | require 'digest/sha1' | 1 | require 'digest/sha1' |
2 | class User < ActiveRecord::Base | 2 | class User < ActiveRecord::Base |
3 | + | ||
4 | + before_create do |user| | ||
5 | + # TODO | ||
6 | + end | ||
7 | + has_one :personal_profile, :class_name => Profile | ||
8 | + | ||
3 | # Virtual attribute for the unencrypted password | 9 | # Virtual attribute for the unencrypted password |
4 | attr_accessor :password | 10 | attr_accessor :password |
5 | 11 |
db/migrate/002_create_profiles.rb
@@ -4,6 +4,7 @@ class CreateProfiles < ActiveRecord::Migration | @@ -4,6 +4,7 @@ class CreateProfiles < ActiveRecord::Migration | ||
4 | t.column :name, :string | 4 | t.column :name, :string |
5 | t.column :identifier, :string | 5 | t.column :identifier, :string |
6 | t.column :virtual_community_id, :integer | 6 | t.column :virtual_community_id, :integer |
7 | + t.column :user_id, :integer | ||
7 | t.column :template, :string, :default => "default" | 8 | t.column :template, :string, :default => "default" |
8 | t.column :theme, :string, :default => "default" | 9 | t.column :theme, :string, :default => "default" |
9 | t.column :icons_theme, :string, :default => "default" | 10 | t.column :icons_theme, :string, :default => "default" |
test/fixtures/profiles.yml
@@ -4,7 +4,7 @@ johndoe: | @@ -4,7 +4,7 @@ johndoe: | ||
4 | name: 'John Doe' | 4 | name: 'John Doe' |
5 | identifier: johndoe | 5 | identifier: johndoe |
6 | virtual_community_id: 1 | 6 | virtual_community_id: 1 |
7 | - owner_id: 1 | 7 | + user_id: 1 |
8 | template: 'default' | 8 | template: 'default' |
9 | icons_theme: 'default' | 9 | icons_theme: 'default' |
10 | theme: 'default' | 10 | theme: 'default' |
@@ -13,7 +13,15 @@ joerandomhacker: | @@ -13,7 +13,15 @@ joerandomhacker: | ||
13 | name: 'Joe Random Hacker' | 13 | name: 'Joe Random Hacker' |
14 | identifier: joerandomhacker | 14 | identifier: joerandomhacker |
15 | virtual_community_id: 1 | 15 | virtual_community_id: 1 |
16 | - owner_id: 2 | 16 | + user_id: 2 |
17 | + template: 'simple' | ||
18 | + icons_theme: 'simple' | ||
19 | + theme: 'simple' | ||
20 | +john_and_joe: | ||
21 | + id: 3 | ||
22 | + name: "John and Joe's Production Cooperative" | ||
23 | + identifier: john_and_joe | ||
24 | + virtual_community_id: 1 | ||
17 | template: 'simple' | 25 | template: 'simple' |
18 | icons_theme: 'simple' | 26 | icons_theme: 'simple' |
19 | theme: 'simple' | 27 | theme: 'simple' |
test/unit/profile_test.rb
@@ -39,9 +39,15 @@ class ProfileTest < Test::Unit::TestCase | @@ -39,9 +39,15 @@ class ProfileTest < Test::Unit::TestCase | ||
39 | assert_kind_of VirtualCommunity, p.virtual_community | 39 | assert_kind_of VirtualCommunity, p.virtual_community |
40 | end | 40 | end |
41 | 41 | ||
42 | - def test_can_have_user_as_owner | 42 | + def test_can_have_user |
43 | p = profiles(:johndoe) | 43 | p = profiles(:johndoe) |
44 | - assert_kind_of User, p.owner | 44 | + assert_kind_of User, p.user |
45 | + end | ||
46 | + | ||
47 | + def test_may_have_no_user | ||
48 | + p = profiles(:john_and_joe) | ||
49 | + assert_nil p.user | ||
50 | + assert p.valid? | ||
45 | end | 51 | end |
46 | 52 | ||
47 | end | 53 | end |