示例#1
0
 public function insert($db, $r)
 {
     $db_user = Dase_DBO_DaseUser::get($db, $this->getEid());
     if (!$db_user) {
         $db_user = new Dase_DBO_DaseUser($db);
         $db_user->name = $this->getTitle();
         $db_user->eid = strtolower($this->getEid());
         $db_user->insert();
     }
     return $db_user;
 }
示例#2
0
 public function postToUsers($r)
 {
     $content_type = $r->getContentType();
     if ('application/atom+xml;type=entry' == $content_type || 'application/atom+xml' == $content_type) {
         $raw_input = $r->getBody();
         $client_md5 = $r->getHeader('Content-MD5');
         //if Content-MD5 header isn't set, we just won't check
         if ($client_md5 && md5($raw_input) != $client_md5) {
             $r->renderError(412, 'md5 does not match');
         }
         try {
             $entry = Dase_Atom_Entry::load($raw_input);
         } catch (Exception $e) {
             Dase_Log::debug(LOG_FILE, 'users handler error: ' . $e->getMessage());
             $r->renderError(400, 'bad xml');
         }
         if ('user' != $entry->entrytype) {
             $r->renderError(400, 'must be a user entry');
         }
         try {
             $user = $entry->insert($this->db, $r);
             header("HTTP/1.1 201 Created");
             header("Content-Type: application/atom+xml;type=entry;charset='utf-8'");
             header("Location: " . $user->getUrl($r->app_root) . '.atom?type=entry');
             echo $user->asAtomEntry($r->app_root);
             exit;
         } catch (Dase_Exception $e) {
             $r->renderError(409, $e->getMessage());
         }
     } elseif ('application/x-www-form-urlencoded' == $content_type) {
         //in honor of http://www.tbray.org/ongoing/When/200x/2009/01/29/Name-Value-Pairs
         $eid = $r->get('eid');
         $name = $r->get('name');
         $user = Dase_DBO_DaseUser::get($this->db, $eid);
         if (!$user) {
             $user = new Dase_DBO_DaseUser($this->db);
             $user->name = $name;
             $user->eid = strtolower($eid);
             $user->updated = date(DATE_ATOM);
             $user->created = date(DATE_ATOM);
             $user->insert();
         }
         header("HTTP/1.1 201 Created");
         header("Content-Type: application/atom+xml;type=entry;charset='utf-8'");
         header("Location: " . $user->getUrl($r->app_root) . '.atom?type=entry');
         echo $user->asAtomEntry($r->app_root);
         exit;
     } else {
         $r->renderError(415, 'cannot accept ' . $content_type);
     }
 }
示例#3
0
 public function getEidauth($r)
 {
     $user = Dase_DBO_DaseUser::get($this->db, $r->get('eid'));
     if ($user) {
         $r->renderResponse($user->getHttpPassword($r->getAuthToken()));
     } else {
         //allow BB to create user
         if ('blackboard' == $r->get('serviceuser')) {
             $u = new Dase_DBO_DaseUser($db);
             $u->eid = strtolower($r->get('eid'));
             //name will simply be eid
             $u->name = $r->get('eid');
             $u->insert();
             $r->renderResponse($u->getHttpPassword($r->getAuthToken()));
         }
         $r->renderError(404);
     }
 }
示例#4
0
 public function postToUsers($r)
 {
     $u = new Dase_DBO_DaseUser($this->db);
     $u->eid = $r->get('eid');
     if ($u->eid && !$u->findOne()) {
         $u->name = $r->get('name');
         $u->insert();
     }
     $r->renderRedirect('admin/users');
 }