/[cvs]/nfo/php/libs/org.netfrag.flib/Tracker/User.php
ViewVC logotype

Contents of /nfo/php/libs/org.netfrag.flib/Tracker/User.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Tue Nov 12 05:42:31 2002 UTC (21 years, 8 months ago) by joko
Branch: MAIN
+ initial checkin

1 <?
2 // -----------------------------------------------------------------------------
3 // $Id: User.class.php,v 1.7 2002/10/29 19:09:53 cvsjoko Exp $
4 // -----------------------------------------------------------------------------
5 // $Log: User.class.php,v $
6 // Revision 1.7 2002/10/29 19:09:53 cvsjoko
7 // + function getLastLogin
8 // + function getUserId
9 //
10 // Revision 1.6 2002/10/25 11:18:10 cvsmax
11 // - removed old functions ('logout', 'create',...)
12 // + add function preLogout() # save user session and unset (session) state
13 //
14 // Revision 1.5 2002/10/22 09:47:48 cvsmax
15 // + add new
16 // - function create() # create & save new user-object in session
17 // - function _create($attr) # create & save new user-object in backend
18 //
19 // - purged some very old functions
20 //
21 // Revision 1.4 2002/10/17 03:12:17 cvsmax
22 // -(+) cleaned code from old structure
23 // + function getPostVar($fieldname)
24 //
25 // Revision 1.3 2002/10/10 02:41:57 cvsjoko
26 // + fixed typo
27 //
28 // Revision 1.2 2002/10/10 02:34:33 cvsjoko
29 // + new level of data-caching (session and persistant)
30 // + function _save()
31 // + function save()
32 // + handling (storing/caching) of POSTed data
33 // + function getPostVars()
34 // + function setPostVars()
35 // + handy utils
36 // + function doDataReady() cares for ready data to continue working
37 // + function refresh() clears underlying data container and makes data "unready"
38 //
39 // Revision 1.1 2002/10/09 00:40:13 cvsjoko
40 // + new
41 //
42 //
43 // -----------------------------------------------------------------------------
44
45 class User {
46
47 var $state;
48 var $meta;
49
50 var $pObject;
51 var $data;
52
53
54 function User() {
55
56 // attention:
57 // this code is only run when your session is _really_ fresh
58 if (session_register_safe('userstate')) {
59 }
60
61 $this->_loadState();
62 $this->meta[logontoken] = 'k&%g2';
63
64 // print dumpVar($_SESSION);
65
66 }
67
68 function _loadState() {
69 global $userstate;
70 $this->state = $userstate;
71 }
72 function _saveState() {
73 global $userstate;
74 $userstate = $this->state;
75 }
76
77
78 function _loadData() {
79 $this->pObject = new ProxyObject($this->state[id]);
80 if ($this->state[id]) {
81 $this->data = $this->pObject->getAttributes();
82 }
83 $this->meta[data_ready] = 1;
84 }
85
86 function _saveData($newRawData) {
87
88 foreach ($newRawData as $key => $val) {
89 //print "$key => $val<br>";
90 $this->set($key, $val);
91 }
92
93 $this->_save("cache");
94
95 //$this->pObject->flushCache(); // done in "pObject->save"
96
97 }
98
99 function _save($type = '') {
100 $this->pObject->save($this->data, $type);
101 $this->meta[data_ready] = 0;
102 }
103
104 function save() {
105 $this->_doDataReady();
106 $this->_save("commit");
107 }
108
109 function create() {
110 $this->_save();
111 $attr = $this->pObject->getAttributes();
112 //print DumpVar($attr);
113 $this->_create($attr);
114 }
115
116 function _create($result) {
117 //print "saving to backend: " . dumpVar($result) . "<br>";
118 $response = $this->pObject->backend->send('createUser', array('data' => $result) );
119 $objectId = $response[oid];
120 //$this->_init($objectId);
121 }
122
123 function _getHKR($key) {
124 $attr_arr = split('\.', $key);
125 $attr_hkr = '["' . join('"]["', $attr_arr) . '"]';
126 return $attr_hkr;
127 }
128
129 function get($attr) {
130 $this->_doDataReady();
131 $hkr = $this->_getHKR($attr);
132 $evalstr = 'return $this->data' . $hkr . ';';
133 $val = eval($evalstr);
134 return $val;
135 }
136 function set($attr, $val) {
137 $this->_doDataReady();
138 $hkr = $this->_getHKR($attr);
139 $evalstr = '$this->data' . $hkr . ' = \'' . $val . '\';';
140 eval($evalstr);
141 }
142
143 function isLoggedOn() {
144 if ($this->state[id] && $this->state[status] == $this->meta[logontoken]) {
145 return 1;
146 }
147 }
148
149
150 //===== function userlogin =========================
151 function login($user,$passwd) {
152 connectdb();
153 //$sql = "SELECT * FROM td_users WHERE uname='$user'";
154 $sql = "SELECT user_oid, uname, pass FROM td_users WHERE uname='$user'";
155 if ($res=send_sql($sql)) {
156 $row = mysql_fetch_array($res,MYSQL_ASSOC);
157 if (!is_array($row)) { return 0; }
158 }
159 if ($row[pass] == $passwd) {
160 //return $uservars_db;
161 // store 1st priority user-data to state
162 $this->state[id] = $row[user_oid];
163 $this->state[status] = $this->meta[logontoken];
164 $this->_saveState();
165 $this->site->log( get_class($this) . "->login ok", LOG_DEBUG );
166 return 1;
167 } else {
168 return 0;
169 }
170 }
171
172 function exists($string) {
173 connectdb();
174 $sql = "SELECT uname FROM td_users WHERE uname='$string'";
175 if ($res=send_sql($sql)) {
176 $row = mysql_fetch_array($res,MYSQL_ASSOC);
177
178 if (is_array($row)) {
179 return 1;
180 }
181 }
182
183 }
184
185
186 function update(&$uservars) {
187 $this->setPostVars($uservars);
188 $data = $this->_transformInputData($uservars);
189 $this->_saveData($data);
190 }
191
192 function _transformInputData(&$uservars) {
193 global $def_mapping;
194 $mapping_uservars2data = array_flip($def_mapping[data2uservars]);
195 foreach ($uservars as $key => $val) {
196 $key_target = $mapping_uservars2data[$key];
197 //print "$key => $key_target: $val<br>";
198 $target[$key_target] = $val;
199 }
200 return $target;
201 }
202
203 function logout() {
204
205 global $site;
206
207 // get information about user from site
208 $userid = $this->state[id];
209
210 $this->site->log( get_class($this) . "->logout: userid $userid", LOG_DEBUG );
211
212 // get information about session from php
213 $session_id = session_id();
214 $session_name = session_name();
215
216 // session-sqldb related
217 $date = date('Y-m-d H:i:s', time());
218 $session_e = $site->session->exists($session_id);
219 $sql = "UPDATE f_map_user_session SET date_logged_out='$date' WHERE session_uid='$session_e[session_uid]' AND user_uid='$userid'";
220 $res = send_sql($sql);
221
222 // destroy user's session at server-side
223 $session_name = session_name();
224 session_destroy();
225
226 // overwrite session-variables - to be sure ;)
227 $_SESSION = array();
228 unset($_COOKIE[$session_name]);
229
230 }
231
232 function preLogout() {
233 global $site;
234 $this->state[status] = '';
235 $this->_saveState();
236 }
237
238 function getAccountSum() {
239 // store additional user-data to state
240 if (!$this->state[accountSum]) {
241 $this->state[accountSum] = $this->get("financeInfo.accountSum");
242 $this->_saveState();
243 }
244 return $this->state[accountSum];
245 }
246
247 function getAccountCurrency() {
248 // store additional user-data to state
249 if (!$this->state[accountCurrency]) {
250 $this->state[accountCurrency] = $this->get("financeInfo.currency");
251 $this->_saveState();
252 }
253 //print "state: " . $this->get("financeInfo.currency") . "<br>";
254 return $this->state[accountCurrency];
255 }
256
257 function refresh() {
258 if ($this->pObject) {$this->pObject->flushState();}
259 $this->meta[data_ready] = 0;
260 }
261
262 function _doDataReady() {
263 if (!$this->meta[data_ready]) { $this->_loadData(); }
264 }
265
266 function getLastLogin() {
267 $userid = $this->getUserId();
268 connectdb();
269 $sql = "SELECT * FROM f_map_user_session WHERE user_uid='$userid' AND last='1'";
270 $res = send_sql($sql);
271 while($row = mysql_fetch_array($res,MYSQL_BOTH)) {
272 if($row[date_logged_out]=="0000-00-00 00:00:00") {
273 $date = $row[date_logged_in];
274 } else {
275 $date = $row[date_logged_out];
276 }
277 $lastLogin = strftime("%d %b %Y - %H:%M",strtotime($date));
278 }
279 return $lastLogin;
280 }
281
282 function getUserId() {
283 return $this->state[id];
284 }
285
286
287 function getPostVars() {
288 return $this->state[postvars];
289 }
290
291 function setPostVars($postvars) {
292 $this->state[postvars] = $postvars;
293 $this->_saveState();
294 }
295
296 function getPostVar($var) {
297 return $this->state[postvars][$var];
298 }
299
300
301
302 }
303
304 ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed