[Affelio-cvs 593] CVS update: affelio

Back to archive index

Tadashi Okoshi slash****@users*****
2005年 10月 24日 (月) 20:37:26 JST


Index: affelio/setup.cgi
diff -u affelio/setup.cgi:1.14 affelio/setup.cgi:1.15
--- affelio/setup.cgi:1.14	Mon Oct 24 17:52:49 2005
+++ affelio/setup.cgi	Mon Oct 24 20:37:26 2005
@@ -16,7 +16,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
-# $Id: setup.cgi,v 1.14 2005/10/24 08:52:49 slash5234 Exp $
+# $Id: setup.cgi,v 1.15 2005/10/24 11:37:26 slash5234 Exp $
 
 use strict;
 
@@ -34,6 +34,7 @@
 use Affelio::misc::CGIError;
 use Affelio::misc::MyCrypt;
 use Affelio::misc::L10N;
+use Affelio::misc::InitAffelio;
 use Affelio::misc::Debug qw(debug_print);
 
 ############################################################################
@@ -271,12 +272,7 @@
     }
 
     #make userdata/xxxxx session/yyyy directories
-    srand(time ^ ($$ + ($$ << 15)));
-    #userdata
-    my $dir1 = Affelio::misc::MyCrypt::generate_password();
-    mkdir("userdata/$dir1", 0777);
-    my $dir2 = Affelio::misc::MyCrypt::generate_password();
-    mkdir("session/$dir2", 0777);
+    Affelio::misc::InitAffelio::create_userdir("./");
 
     return("");
 }
@@ -318,20 +314,14 @@
 	return $err_msg;
     }
 
-    open(OUT, "> $g_fsroot/config/affelio.cfg");
-    print OUT "[site_config]\n";
-    print OUT "fs_root=$g_fsroot\n";
-    print OUT "web_root=$g_webroot\n";
-    print OUT "char_set =$g_locale\n";
-    print OUT "template =default\n";
-    print OUT "\n";
-    print OUT "[command]\n";
-    print OUT "sendmail=$sendmail_path\n";
-    close OUT;
+    Affelio::misc::InitAffelio::create_af_cfg("$g_fsroot/config/affelio.cfg",
+					      $g_fsroot,
+					      $g_webroot,
+					      $g_locale,
+					      "default",
+					      $sendmail_path);
 
-    chmod 0444, "$g_fsroot/config/affelio.cfg";
     chmod 0700, "$g_fsroot/config";
-
     return("");
 }
 
@@ -370,49 +360,30 @@
 	}
     }
 
-    my $userdata_dir="";
-    my $dir;
-    try{
-	opendir(DIR, "./userdata");
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Error in check350: $e";
-    };
-    while (defined($dir = readdir(DIR))) {
-	if(($dir ne '.') && ($dir ne '..') 
-	   && ($dir ne 'default') && ($dir ne 'CVS')){
-	    $userdata_dir = "./userdata/$dir";
-	}
-    }
-    try{
-	closedir(DIR);
+    #determine userdata/xxx/ directory
+    my $userdata_dir = "";
+    try{    
+	$userdata_dir = Affelio::misc::InitAffelio::get_userdir("./userdata");
     }catch Error with{
 	my $e = shift;
 	error $cgi, "Error in check350: $e";
     };
 
-    #Generate login.cfg file
+    debug_print("check_350: userdata dir = [$userdata_dir]");
+
+    #Generate db.cfg file
     try{
-	open(OUT, "> $userdata_dir/db.cfg");
+	Affelio::misc::InitAffelio::create_db_cfg("$userdata_dir/db.cfg",
+						  $db_type,
+						  $db_dbname,
+						  $db_username,
+						  $db_password,
+						  $db_hostname,
+						  $db_port);
     }catch Error with{
 	my $e = shift;
 	error $cgi, "Error in check350: $e";
     };
-    print OUT "[db]\n";
-    print OUT "type=$db_type\n";
-    print OUT "dbname=$db_dbname\n";
-    print OUT "username=$db_username\n";
-    print OUT "password=$db_password\n";
-    print OUT "hostname=$db_hostname\n";
-    print OUT "port=$db_port\n";
-    print OUT "[appdb]\n";
-    print OUT "type=$db_type\n";
-    print OUT "dbname=$db_dbname\n";
-    print OUT "username=$db_username\n";
-    print OUT "password=$db_password\n";
-    print OUT "hostname=$db_hostname\n";
-    print OUT "port=$db_port\n";
-    close OUT;
 
     return("");
 }
@@ -447,313 +418,70 @@
     ##########################################################
     #Determine userdata/..../ directory
     ##########################################################
-    my $userdata_dir="";
-    my $dir;
-    try{
-	opendir(DIR, "./userdata") 
-	    or error($cgi, "Check400-2: cannot open userdata: $@");
-	while (defined($dir = readdir(DIR))) {
-	    if(($dir ne '.') && ($dir ne '..') 
-	       && ($dir ne 'default') && ($dir ne 'CVS')){
-		$userdata_dir = "./userdata/$dir";
-	    }
-	}
-	closedir(DIR)
-	    or error($cgi, "Check400-3: cannot close userdata: $@");
+    #determine userdata/xxx/ directory
+    my $userdata_dir = "";
+    try{    
+	$userdata_dir = Affelio::misc::InitAffelio::get_userdir("./userdata");
     }catch Error with{
 	my $e = shift;
-	error($cgi, "Check400-4: $e");
+	error $cgi, "Error in check400-2: $e";
     };
 
     ##########################################################
-    #Copy files
+    #Create login.cfg
     ##########################################################
     try{
-	#Copy default face JPEG file 
-	system("cp -f defaults/profile_face.jpg $userdata_dir/profile_face.jpg");
-	system("chmod 666 $userdata_dir/profile_face.jpg");
-
-	#Copy default preference file
-	system("cp -f defaults/preference.cfg $userdata_dir/preference.cfg");
-	
-	#Generate login.cfg file
-	open(OUT, "> $userdata_dir/login.cfg")
-	    or error($cgi, "Check400-8: cannot open login.cfg for W: $@");
-	print OUT "[auth]\n";
-	print OUT "username=$g_username\n";
-	print OUT "password=$g_crypted_password\n";
-	close OUT
-	    or error($cgi, "Check400-9: cannot close login.cfg: $@");
-
+	Affelio::misc::InitAffelio::create_login_cfg("$userdata_dir/login.cfg",
+						     $g_username,
+						     $g_crypted_password);
     }catch Error with{
 	my $e = shift;
-	error($cgi, "Check400-10: $e");
+	error $cgi, "Error in check400-8: $e";
     };
 
     ##########################################################
-    #Load Affelio
+    #Copy default files to user directory
     ##########################################################
-    my $cfg_dir = "./config/";
-    my $af;
-    my $dbh;
     try{
-	$af = new Affelio(ConfigDir => $cfg_dir,
-			  Mode => "init");
-	$dbh = $af->{db};
+	Affelio::misc::InitAffelio::copy_def_files(".",
+						   $userdata_dir,
+						   $g_locale);
     }catch Error with{
 	my $e = shift;
-	error($cgi, "Check400-11: Cannot load Affelio: $e");
+	error($cgi, "Error in copying default files: $e");
     };
 
     ##########################################################
-    #Database initialization
+    #DB initialization
     ##########################################################
-
-    ################################
-    #profile DB
-    ################################
-    my $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_CORE_prof(attribute TEXT, value TEXT) 
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-12: Cannot create prof table: $@");
-    }
-
-    $af->{user__nickname} = $g_nickname;
-    $af->{user__email1} = $g_email;
     try{
-	$af->{pm}->save_profile();
+	Affelio::misc::InitAffelio::init_db(".",
+					    $g_nickname,
+					    $g_email,
+					    $g_lh);
     }catch Error with{
 	my $e = shift;
-	error($cgi, "Check400-13: Cannot save_profile: $@");
+	error($cgi, "Error in init_db: $e");
     };
-    debug_print("saved profile");
-
-    ################################
-    #profile attribute DB
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_CORE_prof_attr(aid INTEGER, name TEXT, type INTEGER)
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-14: Cannot create attr table: $@");
-    }
-
-    my $sth = $dbh->prepare(q{insert into AFuser_CORE_prof_attr(aid, name, type) values (?,?,?)}) 
-	or error($cgi, "Check400-15: Cannot prepare SQL statement: $@");
 
-    try{
-	open(FIN, "defaults/AFuser_CORE_prof_attr.csv")
-	    or error($cgi, "Check400-16: Cannot open default prof attr.: $@");
-
-	while(my $line=<FIN>){
-	    chomp($line);
-	    my ($aid, $name, $type) = split(',', $line);
-	    #print "$aid - $name - $type\n";
-	    
-	    $sth->execute($aid, $name, $type) 
-		or error($cgi, "Check400-17: Cannot execute SQL: $@");
-	}
-	close(FIN);
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-18: $e";
-    };
-
-    ################################
-    #friends DB
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_CORE_friends(uid INTEGER PRIMARY KEY, af_id CHAR(255), nickname TEXT, timestamp TEXT, password TEXT, intro TEXT, option_pid INTEGER, lastupdated TEXT, f2list TEXT)
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-19: cannot create friends table: $@");
-    }
-
-    ################################
-    #erasedfriends DB
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_CORE_erasedfriends(uid INTEGER PRIMARY KEY, af_id CHAR(255), timestamp TEXT)
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-20: cannot create erased friends table: $@");
-    }
-
-    ################################
-    #friendsfriends DB
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_CORE_friendsfriends(uid INTEGER PRIMARY KEY, af_id CHAR(255), nickname TEXT, timestamp TEXT, f1list TEXT)
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-21: cannot create F2 table: $@");
-    }
-
-    ################################
-    #group DB
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_CORE_group(gid INTEGER, group_name TEXT, members TEXT, option_pid INTEGER)
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-22: cannot create group table: $@");
-    }
-
-    ################################
-    #Permission DB
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_CORE_permission(pid INTEGER, type TEXT, target_id  TEXT, 
-EOT
-    chop($create_tbl_cmd);
-    for(my $i=0; $i<=63; $i++){
-	$create_tbl_cmd .= " attr$i INT,";
-    }
-    chop($create_tbl_cmd);
-    $create_tbl_cmd .= ")";
-    debug_print("setup: create [$create_tbl_cmd]");
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-23: cannot create permission table: $@");
-    }
-
-    ################################
-    #tmp_recvd_hs
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_SNS_tmp_recvd_hs(sessionid TEXT, timestamp TEXT, af_id CHAR(255), nickname TEXT, DH_key_str TEXT)
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-24: cannot create tmp_recvd table: $@");
-    }
-
-    ################################
-    #tmp_sent_hs
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_SNS_tmp_sent_hs(sessionid TEXT, timestamp TEXT, af_id CHAR(255), nickname TEXT, DH_key_str TEXT)
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-25: cannot create tmp_sent table: $@");
-    }
-
-    ################################
-    #message
-    ################################
-    $create_tbl_cmd = <<EOT;
-CREATE TABLE AFuser_CORE_message(mid INTEGER PRIMARY KEY, timestamp TEXT, msgtitle TEXT, msgtype TEXT, msgfrom TEXT, msgbody TEXT, readflag INTEGER)
-EOT
-    if(!$dbh->do($create_tbl_cmd)){
-	error($cgi, "Check400-26: cannot create message table: $@");
-    }
-
-    try{				    
-	$dbh->disconnect;
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-28: db disconnect : $e";
-    };
-
-    ##########################################################
-    #Setting Initial Values ...
     ##########################################################
-    try{				    
-	undef($af);
-	$af = new Affelio(ConfigDir => $cfg_dir);
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-29: Affelio load error : $e";
-    };
-
-    ################################
-    #Set permission to F1
-    ################################
-    #                 n names  b i  intro   email     url     im
-    my @flag_array = (1,1,1,1, 1,1, 1,1,    0,0,0,0, 1,1,1,1, 0,0,0,0,0,0, 1);
-    try{				    
-	$af->{perm}->add_permission("f", "f1", \@flag_array); 
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-30: $e";
-    };
-
-    ################################
-    #Set permission to F2
-    ################################
-    #                 n names  b i  intro   email     url     im
-    my @flag_array = (1,0,0,0, 0,1, 1,1,    0,0,0,0, 1,1,1,1, 0,0,0,0,0,0, 1);
-    try{				    
-    $af->{perm}->add_permission("f", "f2", \@flag_array); 
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-31: $e";
-    };
-
-    ################################
-    #Set permission to PB
-    ################################
-    #                 n names  b i  intro   email     url     im
-    my @flag_array = (1,0,0,0, 0,0, 1,0,    0,0,0,0, 0,0,0,0, 0,0,0,0,0,0, 0);
-    try{				    
-	$af->{perm}->add_permission("f", "pb", \@flag_array); 
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-32: $e";
-    };
-
-    ################################
-    #Make a new group "dear_friend"
-    ################################
-    my $gid;
-    try{				    
-	$gid = $af->{gm}->add_group($g_lh->maketext("_SETUP_group_dear_friend"));
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-33: $e";
-    };
-
-    #####################################
-    #Set permission to group "dear_friend"
-    #####################################
-    #                 n names  b i  intro   email     url     im
-    my @flag_array = (1,1,1,1, 1,1, 1,1,    1,1,1,1, 1,1,1,1, 1,1,1,1,1,1, 1);
-    try{				    
-	$af->{perm}->add_permission("g", $gid, \@flag_array); 
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-34: $e";
-    };
-
-    ##########################################################
-    #Others...
-    ##########################################################
-
-    ################################
-    #Copy default template files
-    ################################
-    try{				    
-	system("cp -fr defaults/af_templates/$g_locale ./$af->{site__user_dir}/af_templates");
-    }catch Error with{
-	my $e = shift;
-	error $cgi, "Check400-35: $e";
-    };
-
-    ################################
     #Rebuild templates_dyn
-    ################################
+    ##########################################################
     use Affelio::App::Admin::EditTemplates qw(rebuild);
+    my $af;
     try{				    
+	$af = new Affelio(ConfigDir => "./config/");
 	Affelio::App::Admin::EditTemplates::rebuild($af);
     }catch Error with{
 	my $e = shift;
 	error $cgi, "Check400-36: Template rebuild error: $e";
     };
 
-    ################################
-    #Finally, "chmod"
-    ################################
+    ##########################################################
+    #Check and set data directory permission
+    ##########################################################
     try{
-	system("chmod -R 777 ./$af->{site__user_dir}");
+	Affelio::misc::InitAffelio::set_datadir_perm(".");
     }catch Error with{
 	my $e = shift;
 	error $cgi, "Check400-37: $e";


Affelio-cvs メーリングリストの案内
Back to archive index