diff --git a/app/models/user.rb b/lib/user_extension.rb similarity index 57% rename from app/models/user.rb rename to lib/user_extension.rb index 6eb6cd6..abc6978 100644 --- a/app/models/user.rb +++ b/lib/user_extension.rb @@ -1,6 +1,7 @@ -class User < ActiveRecord::Base - # FIXME: workaround for tests - attr_accessor :created_by +module UserExtension + def self.included(base) + base.has_many :permissions, :class_name => 'UserPagePermission' + end def can?(action, page) UserPagePermission.count(:conditions => ['user_id = ? AND page_id = ? AND action = ?', self.id, page.id, action.to_s]) > 0 diff --git a/spec/models/page_spec.rb b/spec/models/page_spec.rb index f403c14..af772de 100644 --- a/spec/models/page_spec.rb +++ b/spec/models/page_spec.rb @@ -17,6 +17,15 @@ def default_page_params(additional_params={}) }.merge(additional_params) end +def default_user_params(additional_params={}) + { + :login => random_string(), + :name => random_string(), + :password => 'wyborowa', + :password_confirmation => 'wyborowa' + }.merge(additional_params) +end + def with_disabled_observers(&blk) Page.delete_observers UserPagePermission.delete_observers @@ -27,7 +36,7 @@ def with_disabled_observers(&blk) describe Page do before :all do - @user = User.create! + @user = User.create!(default_user_params()) with_disabled_observers do @page_with_permission = Page.create!(default_page_params()) @page_without_permission = Page.create!(default_page_params()) diff --git a/user_pages_extension.rb b/user_pages_extension.rb index 30d9032..1a0dc10 100644 --- a/user_pages_extension.rb +++ b/user_pages_extension.rb @@ -23,6 +23,7 @@ def activate PageObserver.instance.send(:add_observer!, Page) UserPagePermissionObserver.instance.send(:add_observer!, UserPagePermission) Page.send(:include, PageExtension) + User.send(:include, UserExtension) # tab 'Content' do # add_item "User Pages", "/admin/user_pages", :after => "Pages" # end