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";