<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/goldberg/controller.rb</filename>
    </added>
    <added>
      <filename>lib/goldberg/filters.rb</filename>
    </added>
    <added>
      <filename>lib/goldberg/helper.rb</filename>
    </added>
    <added>
      <filename>lib/goldberg/migration.rb</filename>
    </added>
    <added>
      <filename>lib/goldberg/migrator.rb</filename>
    </added>
    <added>
      <filename>lib/goldberg/model.rb</filename>
    </added>
    <added>
      <filename>lib/goldberg/routes.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class AuthController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
 
     def self.set_user(session, user_id = nil)
       find_user_id = user_id || session[:goldberg][:user_id]
@@ -53,6 +53,7 @@ module Goldberg
           respond_to do |wants|
             wants.html do
               if session[:pending_request]
+                logger.info &quot;Pending request: #{session[:pending_request].inspect}&quot;
                 pending = session[:pending_request]
                 session[:pending_request] = nil
                 redirect_to pending</diff>
      <filename>app/controllers/goldberg/auth_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class ContentPagesController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
   
     # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
     verify :method =&gt; :post, :only =&gt; [ :destroy, :create, :update ],</diff>
      <filename>app/controllers/goldberg/content_pages_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class ControllerActionsController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
     
     # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
     verify :method =&gt; :post, :only =&gt; [ :destroy, :create, :update ],</diff>
      <filename>app/controllers/goldberg/controller_actions_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class MenuItemsController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
 
     # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
     verify :method =&gt; :post, :only =&gt; [ :destroy, :create, :update, </diff>
      <filename>app/controllers/goldberg/menu_items_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class PermissionsController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
 
     # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
     verify :method =&gt; :post, :only =&gt; [ :destroy, :create, :update ],</diff>
      <filename>app/controllers/goldberg/permissions_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class RolesController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
 
     # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
     verify :method =&gt; :post, :only =&gt; [ :destroy, :create, :update ],</diff>
      <filename>app/controllers/goldberg/roles_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class RolesPermissionsController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
 
     # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
     verify :method =&gt; :post, :only =&gt; [ :destroy, :create, :update ],</diff>
      <filename>app/controllers/goldberg/roles_permissions_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class SiteControllersController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
 
     # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
     verify :method =&gt; :post, :only =&gt; [ :destroy, :create, :update ],</diff>
      <filename>app/controllers/goldberg/site_controllers_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class SystemSettingsController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
 
     def index
       list</diff>
      <filename>app/controllers/goldberg/system_settings_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ require 'digest/sha1'
 
 module Goldberg
   class UsersController &lt; ApplicationController
-    include GoldbergController
+    include Goldberg::Controller
 
     # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
     verify :method =&gt; :post, :only =&gt; [ :destroy, :create, :update ],
@@ -13,25 +13,16 @@ module Goldberg
       @delegate_reg = false
       true  # proceed...
     end
-    before_filter :foreign, :only =&gt; [:new,    :delegate_register,
-                                      :create, :delegate_create,
-                                      :edit,   :delegate_edit,
-                                      :update, :delegate_update]
-    before_filter :enable_self_reg, :only =&gt; [:self_show, :self_register, :self_create,
-                                              :self_edit, :self_update,
-                                              :confirm_registration,
-                                              :confirm_registration_submit]
-    before_filter :enable_delegate_reg, :only =&gt; [:delegate_list, :delegate_show,
-                                                  :delegate_register, :delegate_create,
-                                                  :delegate_edit, :delegate_update,
-                                                  :delegate_destroy]
-    def registration_request
-      key = Digest::SHA1.hexdigest(self.object_id.to_s + rand.to_s)
-      # confirm = UserMailer.create_confirmation_request('Fred Bloggs', 'david@localhost', key)
-      UserMailer.deliver_confirmation_request('Fred Bloggs', 'david@localhost', key)
-
-      render :nothing =&gt; true
-    end
+    before_filter :foreign,
+    :only =&gt; [:new,    :delegate_register, :create, :delegate_create,
+              :edit,   :delegate_edit,     :update, :delegate_update]
+    before_filter :enable_self_reg,
+    :only =&gt; [:self_show, :self_register, :self_create, :self_edit,
+              :self_update, :confirm_registration, :confirm_registration_submit]
+    before_filter :enable_delegate_reg,
+    :only =&gt; [:delegate_list, :delegate_show, :delegate_register,
+              :delegate_create, :delegate_edit, :delegate_update,
+              :delegate_destroy]
     
     def list
       if @delegate_reg
@@ -190,7 +181,8 @@ module Goldberg
         else
           if @user.update_attributes(params[:user])
             flash.now[:notice] = 'User was successfully updated.'
-            redirect_to :action =&gt; 'show', :id =&gt; @user
+            redirect_to :action =&gt; (@self_reg ? 'self_show' : 'show'),
+            :id =&gt; @user
           else
             render :action =&gt; 'edit'
           end</diff>
      <filename>app/controllers/goldberg/users_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ begin require 'redcloth' rescue nil end
 
 module Goldberg
   class ContentPage &lt; ActiveRecord::Base
-    include GoldbergModel
+    include Goldberg::Model
 
     belongs_to :permission
     validates_presence_of :name, :title, :permission_id
@@ -80,6 +80,11 @@ module Goldberg
     def url
       return &quot;/#{self.name}&quot;
     end
+
+    def fullname
+      &quot;#{ERB::Util.html_escape(self.name)}&quot; &lt;&lt;
+        (self.title ? &quot; -- #{ERB::Util.html_escape(self.title)}&quot; : '')
+    end
     
     def content=(new_content)
       write_attribute(:content, new_content)</diff>
      <filename>app/models/goldberg/content_page.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class ControllerAction &lt; ActiveRecord::Base
-    include GoldbergModel
+    include Goldberg::Model
     
     belongs_to :site_controller
     belongs_to :permission</diff>
      <filename>app/models/goldberg/controller_action.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class MenuItem &lt; ActiveRecord::Base
-    include GoldbergModel
+    include Goldberg::Model
     
     validates_presence_of :name, :label
     validates_uniqueness_of :name</diff>
      <filename>app/models/goldberg/menu_item.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class Permission &lt; ActiveRecord::Base
-    include GoldbergModel
+    include Goldberg::Model
 
     has_many :content_pages
     has_many :site_controllers</diff>
      <filename>app/models/goldberg/permission.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require &quot;goldberg/menu&quot;
 
 module Goldberg
   class Role &lt; ActiveRecord::Base
-    include GoldbergModel
+    include Goldberg::Model
 
     has_many :users
     </diff>
      <filename>app/models/goldberg/role.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 module Goldberg
   class RolesPermission &lt; ActiveRecord::Base
-    include GoldbergModel
+    include Goldberg::Model
 
     validates_presence_of :role_id, :permission_id
     </diff>
      <filename>app/models/goldberg/roles_permission.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,9 @@
 module Goldberg
   class SiteController &lt; ActiveRecord::Base
-    include GoldbergModel
+    include Goldberg::Model
 
     belongs_to :permission
-    has_many :controller_actions, :order =&gt; 'name'
+    has_many :controller_actions, :order =&gt; 'name', :dependent =&gt; :destroy
     
     validates_presence_of :name, :permission_id
     validates_uniqueness_of :name</diff>
      <filename>app/models/goldberg/site_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 module Goldberg
   class SystemSettings &lt; ActiveRecord::Base
     set_table_name 'system_settings'
-    include GoldbergModel
+    include Goldberg::Model
     
     attr_accessor :public_role, :default_markup_style
     attr_accessor :site_default_page, :not_found_page, :permission_denied_page,</diff>
      <filename>app/models/goldberg/system_settings.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,22 +2,25 @@ require 'digest/sha1'
 
 module Goldberg
   class User &lt; ActiveRecord::Base
-    include GoldbergModel
+    include Goldberg::Model
 
     belongs_to :role
     
-    validates_presence_of :name, :role_id
+    validates_presence_of :name, :role_id, :password
     validates_uniqueness_of :name
     
     attr_accessor :clear_password
     attr_accessor :confirm_password
-    
-    def before_save
-      if self.clear_password  # Only update the password if it has been changed
+
+    def before_validation
+      if self.clear_password  # Only update password if changed
         self.password_salt = self.object_id.to_s + rand.to_s
         self.password = Digest::SHA1.hexdigest(self.password_salt +
                                                self.clear_password)
       end
+    end
+      
+    def before_save
       if self.self_reg_confirmation_required
         self.set_confirmation_key
       end</diff>
      <filename>app/models/goldberg/user.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@
 &lt;td&gt;&lt;%= collection_select 'menu_item', 'controller_action_id',
           @actions, :id, :fullname %&gt;&lt;/td&gt;
 &lt;td&gt;OR &lt;%= collection_select 'menu_item', 'content_page_id',
-          @pages, :id, :name %&gt;&lt;/td&gt;
+          @pages, :id, :fullname %&gt;&lt;/td&gt;
 &lt;/tr&gt;
 
 &lt;% if @can_change_parent -%&gt;</diff>
      <filename>app/views/goldberg/menu_items/_form.rhtml</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 class InitialSetup &lt; ActiveRecord::Migration
-  include GoldbergMigration
+  include Goldberg::Migration
   def self.up
 
     create_table &quot;#{prefix}permissions&quot;, :force =&gt; false do |t|</diff>
      <filename>db/migrate/001_initial_setup.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 class MenuRestItemsUsersCachedContentPages &lt; ActiveRecord::Migration
-  include GoldbergMigration
+  include Goldberg::Migration
 
   def self.up
     # Add URL to use for Actions, to better support REST</diff>
      <filename>db/migrate/002_menu_rest_items_users_cached_content_pages.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 class SelfRegistration &lt; ActiveRecord::Migration
-  include GoldbergMigration
+  include Goldberg::Migration
   
   def self.up
     # Add fields to SystemSettings to support self registration</diff>
      <filename>db/migrate/003_self_registration.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 class ColumnFixes &lt; ActiveRecord::Migration
-  include GoldbergMigration
+  include Goldberg::Migration
 
   def self.up
     # Remove defaults from many compulsory columns, and drop obsolete</diff>
      <filename>db/migrate/004_column_fixes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -45,10 +45,10 @@ module Goldberg
         end
         # Load Goldberg's bootstrap data
         puts &quot;Loading fixtures from '#{fixture_path}'...&quot;
-        klasses ||= GoldbergMigration.goldberg_classes
+        klasses ||= Goldberg::Migration.goldberg_classes
         klasses.each do |klass|
           klass.delete_all
-          GoldbergMigration.load_for_class(klass, fixture_path)
+          Goldberg::Migration.load_for_class(klass, fixture_path)
         end
         puts &quot;Done loading fixtures.&quot;
       else</diff>
      <filename>lib/goldberg/test_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ namespace :goldberg do
 
   desc &quot;Dump standard Goldberg tables to files in db/&quot;
   task :dump_bootstrap =&gt; :environment do
-    GoldbergMigration.dump_bootstrap
+    Goldberg::Migration.dump_bootstrap
   end
 
   desc &quot;Migrate Goldberg&quot;
@@ -13,7 +13,7 @@ namespace :goldberg do
   
   desc &quot;Load standard Goldberg tables from files in db/&quot;
   task :load_bootstrap =&gt; :migrate do
-    GoldbergMigration.load_bootstrap
+    Goldberg::Migration.load_bootstrap
   end
 
   desc &quot;Install Goldberg&quot;
@@ -22,6 +22,10 @@ namespace :goldberg do
     FileTest.exists?(index) and File.delete(index)
   end
 
+  desc &quot;Upgrade Goldberg&quot;
+  task :upgrade =&gt; :migrate do
+  end
+  
   desc &quot;Flush cached data out of sessions and Roles&quot;
   task :flush =&gt; :environment do
     puts &quot;Deleting any Rails session files&quot;</diff>
      <filename>tasks/goldberg_tasks.rake</filename>
    </modified>
    <modified>
      <diff>@@ -7,6 +7,12 @@ class Goldberg::ContentPagesController; def rescue_action(e) raise e end; end
 
 class ContentPagesControllerTest &lt; Test::Unit::TestCase
   include Goldberg::TestHelper
+
+  def setup
+    @controller = Goldberg::ContentPagesController.new
+    @request    = ActionController::TestRequest.new
+    @response   = ActionController::TestResponse.new
+  end
   
   def test_get_public_page
     get :view, :page_name =&gt; ['home']</diff>
      <filename>test/functional/content_pages_controller_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -86,9 +86,7 @@ class SecurityTest &lt; ActionController::IntegrationTest
     assert_redirected_to_login
 
     form_login('admin', 'admin')
-    assert_equal({ 'controller' =&gt; 'goldberg/users',
-                   'action' =&gt; 'list' },
-                 response.redirected_to)
+    assert_match /goldberg\/users\/list/, response.redirected_to
   end
 
   # User should be redirected to the session expired page if they</diff>
      <filename>test/integration/security_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -23,8 +23,10 @@ class UserTest &lt; Test::Unit::TestCase
     
     user_1 = Goldberg::User.new(:name =&gt; name_1)
     user_1.role = @role
+    user_1.clear_password = 'fred'
     user_2 = Goldberg::User.new(:name =&gt; name_2)
     user_2.role = @role
+    user_2.clear_password = 'fred'
     
     assert(user_1.save)
     assert(user_2.save)
@@ -39,6 +41,7 @@ class UserTest &lt; Test::Unit::TestCase
   def test_password_updated_on_save_when_clear_password_set
     user = Goldberg::User.new(:name =&gt; 'name')
     user.role = @role
+    user.clear_password = 'fred'
     assert(user.save)
     
     saved_password = user.password
@@ -67,7 +70,7 @@ class UserTest &lt; Test::Unit::TestCase
     
     user = Goldberg::User.new(:name =&gt; 'name')
     user.role = @role
-    assert(user.save)
+    assert(!user.save)
     
     user.clear_password = new_pass
     assert_equal(new_pass, user.clear_password)</diff>
      <filename>test/unit/user_test.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/goldberg_controller.rb</filename>
    </removed>
    <removed>
      <filename>lib/goldberg_filters.rb</filename>
    </removed>
    <removed>
      <filename>lib/goldberg_helper.rb</filename>
    </removed>
    <removed>
      <filename>lib/goldberg_migration.rb</filename>
    </removed>
    <removed>
      <filename>lib/goldberg_migrator.rb</filename>
    </removed>
    <removed>
      <filename>lib/goldberg_model.rb</filename>
    </removed>
    <removed>
      <filename>lib/goldberg_routes.rb</filename>
    </removed>
    <removed>
      <filename>test/fixtures/content_pages.yml</filename>
    </removed>
    <removed>
      <filename>test/fixtures/controller_actions.yml</filename>
    </removed>
    <removed>
      <filename>test/fixtures/markup_styles.yml</filename>
    </removed>
    <removed>
      <filename>test/fixtures/menu_items.yml</filename>
    </removed>
    <removed>
      <filename>test/fixtures/permissions.yml</filename>
    </removed>
    <removed>
      <filename>test/fixtures/roles.yml</filename>
    </removed>
    <removed>
      <filename>test/fixtures/roles_permissions.yml</filename>
    </removed>
    <removed>
      <filename>test/fixtures/site_controllers.yml</filename>
    </removed>
    <removed>
      <filename>test/fixtures/users.yml</filename>
    </removed>
    <removed>
      <filename>test/unit/markup_style_test.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>15f8ecb74b21c17623818513ffc9ede0142c2351</id>
    </parent>
  </parents>
  <author>
    <name>Dave Nelson</name>
    <email>urbanus@240gl.org</email>
  </author>
  <url>http://github.com/urbanus/goldberg/commit/9bffcf9eb84d5d2994e7cd3802c2320651783f91</url>
  <id>9bffcf9eb84d5d2994e7cd3802c2320651783f91</id>
  <committed-date>2008-01-05T04:02:37-08:00</committed-date>
  <authored-date>2008-01-05T04:02:37-08:00</authored-date>
  <message>Re-arranged Goldberg's standard libraries into the Goldberg::
namespace.  Removed the test fixtures directory: this has been
obsoleted by Goldberg's bootstrap-based test fixtures.  Addressed
outstanding bugs.  Updated the gemspec for the 0.2.2 release.</message>
  <tree>70699b0abdcc06a0a179e466d102427ea07886ed</tree>
  <committer>
    <name>Dave Nelson</name>
    <email>urbanus@240gl.org</email>
  </committer>
</commit>
