root/dev/common/includes/class.user.php @ 190

Revision 190, 4.0 KB (checked in by exi, 16 years ago)

This is a big update...
Moved all admin scripts to common/admin.
Moved all includes and classes to common/includes.
Edited all include-paths to reflect the movement.
Fixed a bug with the session system allowing every registered user to access admin pages.
Replaced calls to date() to use a wrapper so gmdate can be used.
Replaced some calls to $config with calls to the static object.
Fixed a big which caused the portrait_grab to not download a new picute.
Added a classified-state to kills.
Removed the sync_server server script in this tree.
Added code to help modules find the includes to index.php.

Line 
1<?php
2require_once('class.box.php');
3
4class user
5{
6    function user()
7    {
8        trigger_error('The class "user" may only be invoked statically.', E_USER_ERROR);
9    }
10
11    function login($login, $password)
12    {
13        if (user::loggedin())
14        {
15            return true;
16        }
17        $db = new DBQuery();
18        $db->execute('select * from kb3_user
19                      left join kb3_user_extra on kb3_user.usr_id = kb3_user_extra.use_usr_id
20                      left join kb3_user_titles on kb3_user.usr_id = kb3_user_titles.ust_usr_id
21                      left join kb3_user_roles on kb3_user.usr_id = kb3_user_roles.uro_usr_id
22                      WHERE usr_login='."'".slashfix($login)."' and usr_site='".KB_SITE."'");
23        if (!$row = $db->getRow())
24        {
25            return false;
26        }
27        if ($row['usr_pass'] != md5($password))
28        {
29            return false;
30        }
31        $user = $row;
32        $titles = $roles = array();
33        if ($row['use_key'])
34        {
35            $user[$row['use_key']] = $row['use_value'];
36        }
37
38        // user titles
39        if ($row['ust_ttl_id'])
40        {
41            $titles[] = $row['ust_ttl_id'];
42        }
43
44        // user roles
45        if ($row['uro_rol_id'])
46        {
47            $roles[] = $row['uro_rol_id'];
48        }
49
50        Session::create();
51        while ($row = $db->getRow())
52        {
53            // user extra information
54            if ($row['use_key'])
55            {
56                $user[$row['use_key']] = $row['use_value'];
57            }
58
59            // user titles
60            if ($row['ust_ttl_id'])
61            {
62                $titles[] = $row['ust_ttl_id'];
63            }
64
65            // user roles
66            if ($row['uro_rol_id'])
67            {
68                $roles[] = $row['uro_rol_id'];
69            }
70        }
71        $_SESSION['user'] = $user;
72        user::loggedin(true);
73        return true;
74    }
75
76    function loggedin($bool = null)
77    {
78        static $state;
79
80        if ($bool !== null)
81        {
82            $state = $bool;
83        }
84        if ($state == null)
85        {
86            $state = false;
87        }
88        return $state;
89    }
90
91    // generates the menu for the user
92    function menu()
93    {
94        $box = new Box('User');
95        $box->setIcon('menu-item.gif');
96
97        if (!user::loggedin())
98        {
99            $box->addOption('link', 'Login', '?a=login');
100            $box->addOption('link', 'Register', '?a=register');
101        }
102        else
103        {
104            if (user::get('usr_pilot_id'))
105            {
106                require_once('class.pilot.php');
107
108                $plt = new pilot(user::get('usr_pilot_id'));
109                $box->addOption('link', $plt->getName(), '?a=pilot_detail&plt_id='.$plt->getID());
110            }
111            $box->addOption('link', 'Logout', '?a=logout');
112        }
113
114        event::call('user_menu_create', $box);
115        return $box->generate();
116    }
117
118    function get($key)
119    {
120        if (!isset($_SESSION['user']))
121        {
122            return null;
123        }
124        return $_SESSION['user'][$key];
125    }
126
127    // login,pass,pilot
128    function register($login, $password, $pilot = null, $p_charid = null)
129    {
130        $db = new DBQuery();
131
132        $values[] = KB_SITE;
133        $values[] = $login;
134        $values[] = md5($password);
135        if ($pilot)
136        {
137             $pilot = new Pilot($pilot);
138             $values[] = $pilot->getId();
139             if ($p_charid)
140             {
141                 $pilot->setCharacterID($p_charid);
142             }
143        }
144        else
145        {
146            $values[] = 0;
147        }
148
149        // standard state
150        $values[] = 0;
151        $values = "'".join("','", $values)."'";
152        $db->execute('insert into kb3_user (usr_site, usr_login, usr_pass, usr_pilot_id, usr_state) VALUES ('.$values.')');
153        event::call('user_created', $values);
154    }
155}
156?>
Note: See TracBrowser for help on using the browser.