]> git.donarmstrong.com Git - infobot.git/blob - scripts/setup_users.pl
9c1c200a97d74ab384b84e796f9c882d79a48d6c
[infobot.git] / scripts / setup_users.pl
1 #!/usr/bin/perl
2 # setup_users: setup MYSQL/PGSQL side of things for blootbot.
3 # written by the xk.
4 ###
5
6 require "src/core.pl";
7 require "src/Misc.pl";
8 require "src/logger.pl";
9 require "src/modules.pl";
10 $bot_src_dir = "./src";
11
12 &loadConfig("files/blootbot.config");
13 &loadDBModules();
14
15 my $dbname = $param{'DBName'};
16 my $query;
17
18 if ($dbname eq "") {
19   print "error: appears that teh config file was not loaded properly.\n";
20   exit 1;
21 }
22
23 if ($param{'DBType'} =~ /mysql/i) {
24
25     print "Enter root information...\n";
26     # username.
27     print "Username: ";
28     chop (my $adminuser = <STDIN>);
29
30     # passwd.
31     system "stty -echo";
32     print "Password: ";
33     chop(my $adminpass = <STDIN>);
34     print "\n";
35     system "stty echo";
36
37     if ($adminuser eq "" or $adminpass eq "") {
38         print "error: adminuser || adminpass is NULL.\n";
39         exit 1;
40     }
41
42     # Step 1.
43     print "Step 1: Adding user information.\n";
44
45     # open the db.
46     &openDB("mysql", $adminuser, $adminpass);
47
48     # Step 2.
49     if (!&dbGet("user","user",$param{'SQLUser'},"user")) {
50         print "  Adding user $param{'SQLUser'} $dbname/user table...\n";
51
52         $query = "INSERT INTO user VALUES ".
53                 "('localhost', '$param{'SQLUser'}', ".
54                 "password('$param{'SQLPass'}'), ";
55
56         $query .= "'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N')";
57 ###     $query .= "'Y','Y','Y','Y','N','N','N','N','N','N')";
58
59         &dbRaw("create(user)", $query);
60     }
61
62     # Step 3. what's this for?
63     if (!&dbGet("db","db",$param{'SQLUser'},"db")) {
64         print "  Adding 'db' entry\n";
65
66         $query = "INSERT INTO db VALUES ".
67                 "('localhost', '$dbname', ".
68                 "'$param{'SQLUser'}', ";
69
70         $query .= "'Y','Y','Y','Y','Y','N','N','N','N','N')";
71 ###     $query .= "'Y','Y','Y','Y','Y','N')";
72
73         &dbRaw("create(db)", $query);
74     }
75
76     # grant.
77     print "  Granting user access to table.\n";
78     $query = "GRANT SELECT,INSERT,UPDATE,DELETE ON $dbname TO $param{'SQLUser'}";
79     &dbRaw("??", $query);
80
81     # flush.
82     print "Flushing privileges...\n";
83     $query = "FLUSH PRIVILEGES";                # DOES NOT WORK on slink?
84     &dbRaw("mysql(flush)", $query);
85
86     # create database.
87     print "Creating database $param{'DBName'}...\n";
88     $query = "CREATE DATABASE $param{'DBName'}";
89     &dbRaw("create(db $param{'DBName'})", $query);
90 } elsif ($param{'DBType'} =~ /pg|postgres/i) {
91     use Pg;
92 #    &openDB();
93
94     print "FIXME\n";
95 }
96
97 &closeDB();