public attr / function, constructeurs __construct
[mtweb] / mw / app / data / models / users.php
1 <?php
2
3   class mw_model_users extends mw_model{
4
5     public $roles;
6
7     // ----------------------------------------------------------------------------
8     //                                                                   accesseurs
9
10     public function set_roles($roles){
11       $this->roles = $roles;
12     }
13
14     public function get_roles(){
15       return $this->roles;
16     }
17
18     public function clear_roles(){
19       $this->roles = null;
20     }
21
22     public function get_values(){
23       $values = array();
24       if(isset($this->roles)) $values["roles"] = $this->roles;
25       foreach($this->attributs as $attribut_name => $attribut){
26         $values[$attribut_name] = isset($attribut["value"]) ? $attribut["value"] : null;
27       }
28       return $values;
29     }
30
31     public function set_password($password){
32       $this->attributs["password"]["value"] = $this->encode_password($password);
33     }
34
35     public function encode_password($password){
36       return md5($password);
37     }
38
39     // ----------------------------------------------------------------------------
40     //                                                                   validation
41
42     public function valid_email($email){
43       if(!isset($email) || !$email){
44         return "merci de préciser un email";
45       }
46       if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
47         return "le mail ne semble pas être un email valide";
48       }
49       return true;
50     }
51
52     public function valid_login($login){
53       if(!isset($login) || !$login){
54         return "merci de préciser un login";
55       }
56       return true;
57     }
58
59     public function valid_password($password){
60       if(!isset($password) || ($password == $this->encode_password(""))){
61         return "merci de préciser un mot de passe";
62       }
63       return true;
64     }
65
66     // ----------------------------------------------------------------------------
67     //                                                                         CRUD
68
69     public function insert(){
70       $data = $this->env->data();
71       $roles = $this->get_roles();
72       $this->clear_roles();
73       $RETURN_INSERT_ID = $this->RETURN_INSERT_ID;
74       $this->RETURN_INSERT_ID = true;
75       if(!($id_user = parent::insert())) return false;
76       $this->set_id($id_user);
77       $this->set_roles($roles);
78       $this->RETURN_INSERT_ID = $RETURN_INSERT_ID;
79       foreach($this->roles as $id_role){
80         if(!$data->add_user_role($this->get_id(), $id_role)) return false;
81       }
82       return $id_user;
83     }
84
85     public function load($index_name, $index_value){
86       $data = $this->env->data();
87       if(parent::load($index_name, $index_value) === false) return false;
88       if($this->get_id()){
89         if(($this->roles = $data->list_user_roles($this->get_id())) === false){
90           $this->roles = array();
91         }
92       }
93       return true;
94     }
95
96     public function update($index_name, $index_value = null){
97       $data = $this->env->data();
98       $roles = $this->get_roles();
99       $this->clear_roles();
100       if(!($res = parent::update($index_name, $index_value))) return false;
101       $this->set_roles($roles);
102       if(!$data->clear_user_roles($this->get_id())) return false;
103       foreach($this->roles as $id_role){
104         if(!$data->add_user_role($this->get_id(), $id_role)) return false;
105       }
106       return $res;
107     }
108
109     public function delete($index_name, $index_value = null){
110       $data = $this->env->data();
111       if(!$data->clear_user_roles($this->get_id())) return false;
112       return parent::delete($index_name, $index_value);
113     }
114
115   }