Hi Everyone!

I am trying to get started with LSMB and decided to go with the 1.3 branch from 
svn as I think it will be easier for migrations in the long run. I tried the 
install procedure and it mostly worked. 

After quite a bit of caveman debugging, I have patched the Initiate.pm script 
to allow for a more complete setup which will allow one to go from download to 
login with a lot less effort.

The additions are mainly related to the beta 3 install documentation which 
mention granting roles, etc.

I'm not sure what the gifidir is for, so it's commented out in my patch.

Cheers,
Jason.

Index: LedgerSMB/Initiate.pm
===================================================================
--- LedgerSMB/Initiate.pm       (revision 2912)
+++ LedgerSMB/Initiate.pm       (working copy)
@@ -257,7 +257,8 @@
                
                #Stage 2 -  CReate the language plpgsql
        
-       $form->{newdbh}=LedgerSMB::Initiate->handle_create_language($form);
+       #$form->{newdbh}=LedgerSMB::Initiate->handle_create_language($form);
+       #LedgerSMB::Initiate->handle_create_language($form);
                
                #stage 3 -  Execute series of files which are located in array 
@totalexecutable_files in the database $form->{newdbh}

@@ -274,10 +275,10 @@
sub process_roles {
    $logger->debug("Begin LedgerSMB::Initiate::process_roles");
        my ($form) = @_;
-       print STDERR "loading roles............\n";
+       print STDERR "loading roles for " . $form->{database} . 
"............\n";
        LedgerSMB::Initiate->getdbh($form);
-       open (PSQL, '|-', 'psql') || $form->error($locale->text("Couldn't open 
psql"));
-       my $company = $form->{company};
+       open (PSQL, '|-', 'psql ' . $form->{database}) || 
$form->error($locale->text("Couldn't open psql"));
+       my $company = $form->{database};
    $logger->debug("LedgerSMB::Initiate::process_roles: company = $company");

        open (ROLEFILE, '<', 'sql/modules/Roles.sql') || 
$form->error($locale->text("Couldn't open Roles.sql"));
@@ -290,19 +291,33 @@
        my $query;
        if ($form->{createuser}){
                $query = qq| create user | . 
-                       
$form->{newdbh}->quote_identifier($form->{admin_username}) .
+                       $form->{dbh}->quote_identifier($form->{admin_username}) 
.
                        qq| WITH PASSWORD | .
-                       $form->{newdbh}->quote($form->{admin_password}) .
+                       $form->{dbh}->quote($form->{admin_password}) .
                        qq| IN ROLE | .
-                       
$form->{newdbh}->quote_identifier("lsmb_${company}__users_manage");
+                       
$form->{dbh}->quote_identifier("lsmb_${company}__users_manage");
        } else {
                $query = "GRANT " .
-                       
$form->{newdbh}->quote_identifier("lsmb_${company}__users_manage")  . 
+                       
$form->{dbh}->quote_identifier("lsmb_${company}__users_manage")  . 
                        " TO " .
-                       
$form->{newdbh}->quote_identifier($form->{admin_username});
+                       $form->{dbh}->quote_identifier($form->{admin_username});
        }
-       print PSQL "$query";
+       print PSQL "$query;";

+       print PSQL "INSERT INTO entity (name, entity_class, created, 
country_id) VALUES ('" .$form->{admin_username}. "', 3, NOW(), '232');";
+       print PSQL "INSERT INTO person (entity_id, first_name, last_name, 
created) VALUES (1, 'Admin', 'User', NOW());";
+       print PSQL "INSERT INTO entity_employee (manager_id, entity_id, 
startdate, role) VALUES (1, 1, NOW(), '" .$form->{admin_username}. "');";
+       print PSQL "INSERT INTO users (username, entity_id) VALUES ('" 
.$form->{admin_username}. "', 1);";
+       print PSQL "INSERT INTO user_preference (id) VALUES (1);";
+
+       my @roles = `psql -t -c "SELECT rolname FROM pg_roles WHERE rolname 
LIKE 'lsmb_${company}%';"`;
+       foreach (@roles) {
+               chomp;
+               next if $_ =~ /^$/;
+               print PSQL "grant $_ to " 
.$form->{dbh}->quote_identifier($form->{admin_username}). ";";
+       }
+
+
    $logger->debug("End LedgerSMB::Initiate::process_roles");
}

@@ -474,7 +489,7 @@
        
        open(ORD, '<', $dir . "LOADORDER");
        while (my $line = <ORD>){
-               $line =~ s/\#.*$//; # ignore comments
+               next if $line =~ /^\s*#/; # ignore comments
                next if $line =~ /^\s*$/;
                $line =~ s/^\s*//;
                $line =~ s/\s*$//;
@@ -505,26 +520,20 @@

        $dir =~s/\/[\w\d\.]*$/$location/;

+        my @dest;      
+       
        my $chartdir=$dir."chart/";
-       
-       my $gifidir=$dir."gifi/";
        @chartdir = LedgerSMB::Initiate->read_directory($form, $chartdir);
-
-        my @dest;      
-
-        my $i;
-       for($i=0;$i<=$#chartdir;$i++)
-       {
-               $dest[$i]=$chartdir.$chartdir[$i] if $chartdir[$i] = $coa;
+       foreach (@chartdir) {
+               push(@dest, $chartdir.$_) if $_ eq $coa;
        }
-       for(my $j=0;$j<=$#gifidir;$j++,$i++)
-       {
          
-               $dest[$i]=$chartdir.$gifidir[$i] if $gifidir[$i] = $coa;
+#      my $gifidir=$dir."gifi/";
+#      @gifidir = LedgerSMB::Initiate->read_directory($form, $gifidir);
+#      foreach (@gifidir) {
+#              push(@dest, $gifidir.$_) if $_ eq $coa;
+#      }
        
-       }
-
-       
        return(@dest);


Index: sql/Pg-database.sql
===================================================================
--- sql/Pg-database.sql (revision 2912)
+++ sql/Pg-database.sql (working copy)
@@ -1,3 +1,5 @@
+CREATE LANGUAGE plpgsql;
+
begin;
CREATE SEQUENCE id;
-- As of 1.3 there is no central db anymore. --CT


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Ledger-smb-devel mailing list
Ledger-smb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel

Reply via email to