~george-edison55/charms/precise/statusnet/added-maintainer

« back to all changes in this revision

Viewing changes to opt/update_admin_info

  • Committer: Nathan Osman
  • Date: 2011-11-29 07:00:43 UTC
  • Revision ID: admin@quickmediasolutions.com-20111129070043-xqpxjd0ty3qc6j4t
Almost finished filling in the rest of the hooks, added two utility scripts, and made some corrections here and there.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/php
 
2
<?php
 
3
 
 
4
//=======================================
 
5
//    This 'small' PHP script updates
 
6
// the information for the administrator
 
7
//=======================================
 
8
 
 
9
// Include the file containing DB credentials
 
10
define('STATUSNET', 1);
 
11
require_once '/var/www/config.php';
 
12
 
 
13
// We should have received 4 command line arguments
 
14
if($argc != 3)
 
15
{
 
16
    echo "Usage: {$argv[0]} nickname password\n";
 
17
    exit(1);
 
18
}
 
19
 
 
20
// Grab the new data to set
 
21
$nickname  = $argv[1];
 
22
$password  = $argv[2];
 
23
 
 
24
// Check the config file for the connection data
 
25
if(!isset($config['db']['database']))
 
26
{
 
27
    echo "Error: database connection information missing from config file.\n";
 
28
    exit(1);
 
29
}
 
30
 
 
31
// Extract the database info
 
32
if(!preg_match('/^mysqli:\/\/(.*?):(.*?)@(.*?)\/(.*?)$/',
 
33
               $config['db']['database'],
 
34
               $matches))
 
35
{
 
36
    echo "Error: database connection information in config file is unreadable.\n";
 
37
    exit(1);
 
38
}
 
39
 
 
40
list($_, $db_user, $db_pass, $db_host, $db_name) = $matches;
 
41
 
 
42
// Connect to the database server
 
43
$sql = new mysqli($db_host, $db_user, $db_pass, $db_name);
 
44
 
 
45
// Make sure the connection is valid
 
46
if($sql->connect_error)
 
47
{
 
48
    echo "MySQL connection error: {$sql->connect_error}\n";
 
49
    exit(1);
 
50
}
 
51
 
 
52
// Check if user #1 (the admin) exists
 
53
if(!($statement = $sql->prepare('SELECT id FROM user WHERE id = 1')))
 
54
{
 
55
    echo "MySQL error: {$sql->error}\n";
 
56
    exit(1);
 
57
}
 
58
 
 
59
if($statement->execute() === FALSE)
 
60
{
 
61
    echo "MySQL error: {$sql->error}\n";
 
62
    exit(1);
 
63
}
 
64
 
 
65
$user_exists = $statement->fetch();
 
66
$statement->close();
 
67
 
 
68
if($user_exists)
 
69
{
 
70
    // Prepare to update the admin
 
71
    if(!($statement = $sql->prepare('UPDATE user SET nickname = ?, password = ? WHERE id = 1')))
 
72
    {
 
73
        echo "MySQL error: {$sql->error}\n";
 
74
        exit(1);
 
75
    }
 
76
    
 
77
    // TODO: hash password
 
78
    
 
79
    $statement->bind_param('ss', $nickname, $password);
 
80
    
 
81
    // Perform the update
 
82
    if($statement->execute() === FALSE)
 
83
    {
 
84
        echo "MySQL error: {$sql->error}\n";
 
85
        exit(1);
 
86
    }
 
87
}
 
88
else
 
89
{
 
90
    // Create the admin user
 
91
    if(!($statement = $sql->prepare('INSERT INTO user (id, nickname, password, created, modified) VALUES (1, ?, ?, NOW(), NOW())')))
 
92
    {
 
93
        echo "MySQL error: {$sql->error}\n";
 
94
        exit(1);
 
95
    }
 
96
    
 
97
    // TODO: hash password
 
98
    
 
99
    // Bind the parameters
 
100
    $statement->bind_param('ss', $nickname, $password);
 
101
    
 
102
    // Insert the user
 
103
    if($statement->execute() === FALSE)
 
104
    {
 
105
        echo "MySQL error: {$sql->error}\n";
 
106
        exit(1);
 
107
    }
 
108
}
 
109
 
 
110
?>