partia duużych zmian
[watermeloncms.git] / wtrmln / modules / models / model_user.php
blobfce35133724ad4b44bd389b21e3cd10c893428ac
1 <?php
2 /********************************************************************
4 Watermelon CMS
6 Copyright 2008-2009 Radosław Pietruszewski
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 version 2 as published by the Free Software Foundation.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 ********************************************************************/
23 class Model_User extends Model
26 * public DBresult LoginUserData(string $login)
28 * zwraca dane użytkownika niezbędne do zalogowania (hasło, algorytm
29 * haszujący, sól, id)
31 * string $login - nick usera, którego dane mają być zwrócone
34 public function LoginUserData($login)
36 $login = mysql_real_escape_string($login);
38 return $this->db->query("SELECT `password`, `hashalgo`, `salt`, `id` FROM `__users` ".
39 "WHERE `nick` = '%1'", $login);
43 * public DBresult UpdatePassword(string $nick, string $hash, string $salt, int $hashAlgo)
45 * aktualizuje hasło użytkownika
47 * string $nick - nick użytkownika, którego hasło ma zostać zaktualizowane
48 * string $hash - hash hasła
49 * string $salt - sól
50 * int $hashAlgo - numer algorytmu haszującego
53 public function UpdatePassword($nick, $hash, $salt, $hashAlgo)
55 $nick = mysql_real_escape_string($nick);
56 return $this->db->query("UPDATE `__users` SET " .
57 "`password` = '%1', `hashalgo` = '%2', `salt` = '%3' " .
58 "WHERE `nick` = '%4'", $hash, $hashAlgo, $salt, $nick);
62 * public bool UserExists(string $nick)
64 * sprawdza, czy dany użytkownik istnieje
65 * zwraca true, jeśli istnieje, false jeśli nie
67 * string $nick - nick użytkownika, którego istnienie ma zostać sprawdzone
70 public function UserExists($nick)
72 $nick = mysql_real_escape_string($nick);
73 $user = $this->db->query("SELECT `id` FROM `__users` WHERE `nick` = '%1'", $nick);
74 $user = $user->num_rows();
75 return ($user == 0 ? FALSE : TRUE);
79 * public DBresult UserData(string $nick)
80 * public DBresult UserData(uint $uid)
82 * zwraca dane użytkownika na podstawie nicka, lub UID
84 * string $login - nick usera, którego dane mają być zwrócone
85 * uint $uid - id usera, którego dane mają być zwrócone
88 public function UserData($nick)
90 if(is_int($nick))
92 $uid = intval($nick);
93 return $this->db->query("SELECT * FROM `__users` JOIN `__privileges` ON `__users`.`id` = `__privileges`.`uid` WHERE `__users`.`id` = '%1'", $uid);
96 $nick = mysql_real_escape_string($nick);
98 return $this->db->query("SELECT * FROM `__users` JOIN `__privileges` ON `__users`.`id` = `__privileges`.`uid` WHERE `__users`.`nick` = '%1'", $nick);
102 * public void UpdateLastSeen(uint $uid)
104 * uaktualnia pole "ostatnio widziany" dla użytkownika o ID = $uid
106 * uint $uid - ID usera, którego pole "ostatnio widziany" ma zostać uaktualnione
109 public function UpdateLastSeen($uid)
111 $uid = intval($uid);
112 $this->db->query("UPDATE `__users` SET `lastseen` = '%1' WHERE `id` = '%2'", time(), $uid);
116 * public DBresult GetOnlineUsers()
118 * zwraca dane osób, które są online (w sensie: były widziane nie dawniej jak 5 minut temu)
121 public function GetOnlineUsers()
123 return $this->db->query("SELECT * FROM `__users` WHERE `lastseen` > '%1'", time() - 300);