/** * @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"); } } }
/** * @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); }
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(); }); }
/** * 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; }
/** * @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"); } }
/** * 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"); } } }
/** * 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; }