Changeset 260 for Dev/branches/rest-dojo-ui/server/api.php
- Timestamp:
- 02/14/12 18:22:25 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/rest-dojo-ui/server/api.php
r256 r260 12 12 use Tonic\Resource as Resource; 13 13 14 function restore_session() { 14 function set_session_cookie($response,$user) { 15 $response->addHeader('Set-Cookie', 'rft_uid=' . $user->uid . '; Max-Age: 3600; Path=' . $response->request->baseUri); 16 } 17 18 function restore_session($response) { 15 19 if (isset($_COOKIE['rft_uid'])) { 16 20 $user = Auth::restore($_COOKIE['rft_uid']); 17 21 if ($user) { 22 set_session_cookie($response, $user); 18 23 return $user; 19 24 } … … 34 39 $response = new Response($request); 35 40 36 if (!empty($request->data)) { 37 $data = json_decode($request->data); 38 $user = Auth::login($data->username, sha1($data->password)); 39 if ($user) { 40 $response->addHeader('Set-Cookie', 'rft_uid=' . $user->uid . '; Path=' . $request->baseUri); 41 $response->body = json_encode($user); 42 } else { 41 $user = null; 42 $data = null; 43 if ( !empty($request->data) ) { 44 $data = json_decode($request->data,true); 45 } 46 if (!empty($data)) { 47 $user = Auth::login($data['username'], sha1($data['password'])); 48 if (!$user) { 43 49 throw new ResponseException("Incorrect username and password", Response::UNAUTHORIZED); 44 50 } 45 51 } else { 46 throw new ResponseException("No login data provided", Response::BADREQUEST); 47 } 52 $user = restore_session($response); 53 } 54 $response->body = json_encode($user); 48 55 return $response; 49 56 } … … 64 71 65 72 function get($request) { 66 restore_session();67 $response = new Response($request);73 $response = new Response($request); 74 restore_session($response); 68 75 69 76 $type = $this->getType($request); 70 71 77 $objects = $type::get(array()); 72 78 //$objects = array_map(function($val) { return array('uid' => $val->uid); }, $objects); … … 77 83 78 84 function post($request) { 79 restore_session();80 $response = new Response($request);85 $response = new Response($request); 86 restore_session($response); 81 87 82 88 $type = $this->getType($request); … … 128 134 129 135 function get($request) { 130 restore_session();131 $response = new Response($request);136 $response = new Response($request); 137 restore_session($response); 132 138 133 139 $info = $this->getTypeAndUid($request); 134 135 140 $objects = $info['type']::get(array('uid' => $info['uid'])); 136 141 if (empty($objects)) { … … 143 148 144 149 function put($request) { 145 restore_session();146 $response = new Response($request);150 $response = new Response($request); 151 restore_session($response); 147 152 148 153 $info = $this->getTypeAndUid($request);
Note: See TracChangeset
for help on using the changeset viewer.