[Jifty-commit] r4064 - in apps/CASPlus/trunk: lib/CASPlus lib/CASPlus/Action

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Mon Sep 10 12:42:52 EDT 2007


Author: sterling
Date: Mon Sep 10 12:42:50 2007
New Revision: 4064

Modified:
   apps/CASPlus/trunk/   (props changed)
   apps/CASPlus/trunk/lib/CASPlus/Action/CreateFirstUser.pm
   apps/CASPlus/trunk/lib/CASPlus/Dispatcher.pm

Log:
 r11174 at riddle:  andrew | 2007-09-04 11:54:33 -0500
 Fixed the process for creating the initial administrator user.


Modified: apps/CASPlus/trunk/lib/CASPlus/Action/CreateFirstUser.pm
==============================================================================
--- apps/CASPlus/trunk/lib/CASPlus/Action/CreateFirstUser.pm	(original)
+++ apps/CASPlus/trunk/lib/CASPlus/Action/CreateFirstUser.pm	Mon Sep 10 12:42:50 2007
@@ -41,23 +41,22 @@
 sub take_action {
     my $self = shift;
 
-    my $user = CASPlus::Model::User->create(
+    my $user = CASPlus::Model::User->new;
+    my $ret = $user->create(
         username => $self->argument_value('username'),
         password => $self->argument_value('password'),
     );
 
-    use Data::Dumper;
-    $self->log->error(Dumper($user));
-
     unless (defined $user and $user->id) {
         my $msg = 'Failed to create the administrator account named "'
-                . $self->argument_value('username').'".';
+                . $self->argument_value('username').'": '.$ret->error_message;
         $self->result->error($msg);
         $self->log->fatal($msg);
         return 0;
     }
 
-    my $role = CASPlus::Model::Role->create(
+    my $role = CASPlus::Model::Role->new;
+    $ret = $role->create(
         name                       => 'Superuser',
         may_manage_profiles        => 1,
         may_manage_profile_objects => 1,
@@ -66,20 +65,21 @@
     );
 
     unless (defined $role and $role->id) {
-        my $msg = 'Failed to create the Superuser role';
+        my $msg = 'Failed to create the Superuser role: '.$ret->error_message;
         $self->result->error($msg);
         $self->log->fatal($msg);
         return 0;
     }
 
-    my $role_member = CASPlus::Model::RoleMember->create(
+    my $role_member = CASPlus::Model::RoleMember->new;
+    $ret = $role_member->create(
         the_role => $role,
         the_user => $user,
     );
 
     unless (defined $role_member and $role_member->id) {
         my $msg = 'Failed to assign the administation account "'
-                . $user->username . '" the Superuser role.';
+                . $user->username . '" the Superuser role: '.$ret->error_message;
         $self->result->error($msg);
         $self->log->fatal($msg);
         return 0;

Modified: apps/CASPlus/trunk/lib/CASPlus/Dispatcher.pm
==============================================================================
--- apps/CASPlus/trunk/lib/CASPlus/Dispatcher.pm	(original)
+++ apps/CASPlus/trunk/lib/CASPlus/Dispatcher.pm	Mon Sep 10 12:42:50 2007
@@ -30,14 +30,22 @@
 before '**' => run {
     my $users = CASPlus::Model::UserCollection->new;
     $users->unlimit;
-    unless ($users->count) {
-        Jifty->web->current_user->is_superuser(1);
+    if ($users->count) {
+        Jifty->api->deny('CreateFirstUser');
     }
     else {
-        Jifty->api->deny('CreateFirstUser');
+        Jifty->web->current_user->is_superuser(1);
     }
 };
 
+on '/' => run {
+    my $users = CASPlus::Model::UserCollection->new;
+    $users->unlimit;
+    unless ($users->count) {
+        redirect '/admin/setup';
+    }
+}
+
 =head2 before **
 
 This rule configures the menu items for the Administration page.


More information about the Jifty-commit mailing list