Beispiel #1
0
 /**
  * @before _session
  */
 public function verify($id)
 {
     $this->seo(array("title" => "Thanks for Registering", "view" => $this->getLayoutView()));
     $view = $this->getActionView();
     $meta = Meta::first(array("value = ?" => $id, "property = ?" => "forgotPass"));
     if (!$meta) {
         $this->redirect("/404");
     }
     $user = User::first(array("id = ?" => $meta->user_id));
     if ($user) {
         $view->set("message", "Please create a password");
     } else {
         $this->redirect("/login.html");
     }
     if (RequestMethods::post("action") == "setpass") {
         if (!$user->validate()) {
             $view->set("message", "Fields are required");
             return;
         }
         if (RequestMethods::post("password") == RequestMethods::post("rpassword")) {
             $user->password = sha1(RequestMethods::post("password"));
             $user->live = 1;
             $user->save();
             $this->setUser($user);
             $meta->delete();
             $this->redirect("/patient/profile");
         } else {
             $view->set("message", "Password doesnot match");
         }
     }
 }
Beispiel #2
0
 /**
  * @before _secure
  */
 public function play()
 {
     $this->seo(array("title" => "Play Game", "view" => $this->getLayoutView()));
     $view = $this->getActionView();
     $session = Registry::get("session");
     $campaign = $session->get('Game\\Authorize:$campaign');
     if (!$campaign) {
         $this->redirect("/index.html");
     }
     $session->erase('Game\\Authorize:$campaign');
     $model = $campaign->type;
     $game = $model::first(array("id = ?" => $campaign->type_id));
     switch ($model) {
         case 'imagetext':
             $img = $this->_imagetextprocess($game, $campaign);
             break;
         case 'image':
             $img = $this->_imageprocess($game, $campaign);
             break;
         case 'text':
             $img = $this->_textprocess($game, $campaign);
             break;
         case 'shuffle':
             $img = $this->_shuffleprocess($game, $campaign);
             break;
     }
     $participant = Participant::first(array("user_id = ?" => $this->user->id, "campaign_id = ?" => $campaign->id));
     $facebook = new Curl();
     $facebook->post('https://graph.facebook.com/?id=' . "http://" . $_SERVER["HTTP_HOST"] . "/game/result/" . $participant->id . '&scrape=true');
     $facebook->close();
     $domain = Meta::first(array("property = ?" => "domain", "live = ?" => true));
     $items = Participant::all(array(), array("DISTINCT campaign_id"), "created", "desc", 3, 1);
     $view->set("items", $items);
     $view->set("img", $img);
     $view->set("participant", $participant);
     $view->set("campaign", $campaign)->set("domain", $domain);
 }
Beispiel #3
0
 public function __construct($options = array())
 {
     parent::__construct($options);
     // connect to database
     $database = Registry::get("database");
     $database->connect();
     $mongoDB = Registry::get("MongoDB");
     if (!$mongoDB) {
         $mongo = new \MongoClient();
         $mongoDB = $mongo->selectDB("stats");
         Registry::set("MongoDB", $mongoDB);
     }
     $session = Registry::get("session");
     $fbapp = $session->get("fbapp");
     if (!$fbapp) {
         $fbapp = \Meta::first(array("property = ?" => "fbapp"))->value;
         $session->set("fbapp", $fbapp);
     }
     $this->getLayoutView()->set("fbapp", $fbapp);
     // schedule: load user from session
     Events::add("framework.router.beforehooks.before", function ($name, $parameters) {
         $session = Registry::get("session");
         $controller = Registry::get("controller");
         $user = $session->get("user");
         if ($user) {
             $controller->user = \User::first(array("id = ?" => $user));
         }
     });
     // schedule: save user to session
     Events::add("framework.router.afterhooks.after", function ($name, $parameters) {
         $session = Registry::get("session");
         $controller = Registry::get("controller");
         if ($controller->user) {
             $session->set("user", $controller->user->id);
         }
     });
     // schedule: disconnect from database
     Events::add("framework.controller.destruct.after", function ($name) {
         $database = Registry::get("database");
         $database->disconnect();
     });
 }
Beispiel #4
0
 /**
  * Sets the meta for app login
  */
 private function _meta($user, $app)
 {
     $meta = Meta::first(array("property = ?" => "user", "property_id = ?" => $user->id, "meta_key = ?" => $app . "-app"));
     if (!$meta) {
         $meta = new Meta(array("property" => "user", "property_id" => $user->id, "meta_key" => $app . "-app", "meta_value" => Markup::uniqueString(44)));
         $meta->save();
     }
     return $meta;
 }
Beispiel #5
0
 /**
  * @before _secure
  * @after _csrfToken
  */
 public function settings()
 {
     $this->seo(array("title" => "Settings"));
     $view = $this->getActionView();
     $user = $this->user;
     $org = $this->org;
     $search = ['prop' => 'customField', 'propid' => $org->_id];
     $meta = Meta::first($search) ?? (object) [];
     $view->set('fields', $meta->value ?? []);
     $apikey = ApiKey::first(["org_id = ?" => $org->id]);
     $mailConf = Meta::first(['prop' => 'orgSmtp', 'propid' => $this->org->_id]) ?? (object) [];
     $view->set('mailConf', $mailConf->value ?? [])->set("errors", []);
     if (RM::type() == 'POST') {
         $action = RM::post('action', '');
         switch ($action) {
             case 'account':
                 $user->name = RM::post('name');
                 $user->currency = RM::post('currency', 'INR');
                 $user->region = ["currency" => RM::post('currency', 'INR'), "zone" => RM::post('timezone', 'Asia/Kolkata')];
                 $user->phone = RM::post('phone');
                 $user->save();
                 $view->set('message', 'Account Updated!!');
                 break;
             case 'password':
                 $old = RM::post('password');
                 $new = RM::post('npassword');
                 $view->set($user->updatePassword($old, $new));
                 break;
             case 'billing':
                 $billing = $org->billing;
                 $billing["aff"]["auto"] = RM::post("autoinvoice", 0);
                 $billing["aff"]["freq"] = RM::post("freq", 15);
                 $billing["aff"]["minpay"] = $this->currency(RM::post('minpay', 100));
                 $billing["aff"]["ptypes"] = RM::post("ptypes");
                 $billing["adv"]["paypal"] = RM::post("paypal");
                 $org->billing = $billing;
                 $org->save();
                 $this->setOrg($org);
                 $view->set('message', 'Organization Billing Updated!!');
                 break;
             case 'org':
                 $meta = $org->meta;
                 if (RM::post("widgets")) {
                     $meta["widgets"] = RM::post("widgets");
                     $org->meta = $meta;
                 }
                 $zopim = RM::post("zopim");
                 $meta["zopim"] = $zopim;
                 if (strlen($zopim) == 0) {
                     unset($meta["zopim"]);
                 }
                 $org->name = RM::post('name');
                 $org->meta = $meta;
                 $org->logo = $this->_upload('logo');
                 $org->url = RM::post('url');
                 $org->email = RM::post('email');
                 $org->save();
                 $this->setOrg($org);
                 $view->set('message', 'Network Settings updated!!');
                 break;
             case 'customField':
                 $label = RM::post("fname");
                 $type = RM::post("ftype", "text");
                 $required = RM::post("frequired", 1);
                 $name = strtolower(str_replace(" ", "_", $label));
                 $field = ['label' => ucwords($label), 'type' => $type, 'name' => $name, 'required' => (bool) $required];
                 if (!$label) {
                     break;
                 }
                 if (!is_object($meta) || !is_a($meta, 'Meta')) {
                     $meta = new Meta($search);
                 }
                 $fields = $meta->value;
                 $fields[] = $field;
                 $meta->value = $fields;
                 $meta->save();
                 $view->set('fields', $meta->value ?? []);
                 $view->set('message', 'Extra Field Added!!');
                 break;
             case 'smtp':
                 $msg = \Shared\Services\Smtp::create($this->org);
                 $view->set('message', $msg);
                 break;
             case 'apikey':
                 $view->set('message', "Api Key Updated!!");
                 if (!$apikey) {
                     $apikey = new ApiKey(['org_id' => $this->org->_id, 'key' => uniqid() . uniqid() . uniqid()]);
                     $view->set('message', "Api Key Created!!");
                 }
                 $apikey->updateIps();
                 $apikey->save();
                 break;
         }
         $this->setUser($user);
     }
     $view->set("apiKey", $apikey);
     if (RM::type() === 'DELETE') {
         if (is_a($meta, 'Meta')) {
             $meta->delete();
         }
         $view->set('message', 'Extra Fields removed!!');
     }
     $img = RM::get("img");
     if (RM::get("action") == "removelogo" && $img === $org->logo) {
         Utils::media($org->logo, 'remove');
         $org->logo = ' ';
         $this->setOrg($org);
         $org->save();
         $this->redirect("/admin/settings.html");
     }
 }
Beispiel #6
0
 /**
  * Verifies the doctor and allows them to change or create password
  * @before _session
  */
 public function verify($id)
 {
     $this->seo(array("title" => "Thanks for Registering", "view" => $this->getLayoutView()));
     $view = $this->getActionView();
     $meta = Meta::first(array("value = ?" => $id, "property = ?" => "forgotPass"));
     if (!$meta) {
         $this->redirect("/404");
     }
     $user = User::first(array("id = ?" => $meta->user_id));
     if ($user) {
         $view->set("message", "Please create a password");
     } else {
         $this->redirect("/");
     }
     if (RequestMethods::post("action") == "setpass") {
         if (!$user->validate()) {
             $view->set("message", "Fields are required");
             return;
         }
         if (RequestMethods::post("password") == RequestMethods::post("rpassword")) {
             $user->password = sha1(RequestMethods::post("password"));
             $user->live = 1;
             $user->save();
             $this->setUser($user);
             $doctor = Doc::first(array("user_id = ?" => $user->id));
             $member = Member::first(array("user_id = ?" => $this->user->id));
             $organization = Organization::first(array("id = ?" => $member->organization_id));
             Registry::get("session")->set("doctor", $doctor)->set("member", $member)->set("organization", $organization);
             $meta->delete();
             $this->redirect("/doctor");
         } else {
             $view->set("message", "Password doesnot match");
         }
     }
 }
Beispiel #7
0
 /**
  * Sets the meta for app login
  */
 private function _meta($user, $app)
 {
     $meta = Meta::first(array("user_id = ?" => $user->id, "property = ?" => $app . "-app"));
     if (!$meta) {
         $meta = new Meta(array("user_id" => $user->id, "property" => $app . "-app", "value" => uniqid()));
         $meta->save();
     }
     return $meta;
 }