Touren application
[infodrom.org/touren.infodrom.org] / core / sys_user.class.php
1 <?php
2
3 class Sys_User extends DatabaseTable
4 {
5     public function __construct($id=false, $column=false)
6     {
7         parent::__construct('sys_user', $id, $column);
8     }
9
10     public function generateKey()
11     {
12         $key = md5(random_bytes(20));
13
14         $this->modify(['pwkey' => $key,
15                        'pwkey_valid' => 'now()']);
16     }
17
18     public function setPassword($passwd)
19     {
20         return $this->modify(['passwd' => md5($this->data->email.$passwd),
21                               'pwkey' => NULL,
22                               'pwkey_valid' => NULL]);
23     }
24
25     public function getUserlist($tour_id=false)
26     {
27         $tour_id = intval($tour_id);
28         $sql =<<<EOS
29             SELECT DISTINCT
30               sys_user.id,sys_user.name,sys_user.email,tour_id IS NOT NULL AS active
31             FROM sys_user
32             LEFT JOIN tour_member ON sys_user.id = member_id
33                                  AND ({$tour_id} = 0 OR tour_id = {$tour_id})
34             WHERE sys_user.id > 1 AND active = true
35             ORDER by sys_user.name
36 EOS;
37
38         return $this->db->fetchObjectList($sql);
39     }
40 }