/** * @important | @core function * Specific types are needed for MongoDB for proper querying * @param misc $value * @param string $type */ public function _convertToType($value, $type) { if (Db::isType($value, 'regex')) { return $value; } switch ($type) { case 'text': $value = (string) $value; break; case 'integer': $value = (int) $value; break; case 'boolean': $value = (bool) $value; break; case 'decimal': $value = (double) $value; break; case 'datetime': case 'date': if (is_array($value)) { break; } else { if (is_object($value)) { $date = $value; if (Db::isType($value, 'date')) { break; } else { if (is_a($value, 'DateTime')) { $date = $value->format('Y-m-d'); } } $value = Db::time($date); } else { $value = Db::time($value); } } break; case 'autonumber': case 'mongoid': if (Db::isType($value, 'id')) { break; } else { if (is_array($value)) { $copy = $value; $value = []; foreach ($copy as $key => $val) { $value[$key] = Utils::mongoObjectId($val); } } else { $value = Utils::mongoObjectId($value); } } break; case 'array': if (!is_array($value)) { $value = (array) $value; } break; default: $value = $value; break; } return $value; }
public static function hourly() { $halfHrAgo = date('Y-m-d H:i:s', time() - 1800); $now = date('Y-m-d H:i:s'); $created = ['$gte' => Db::time($halfHrAgo), '$lte' => Db::time($now)]; self::deleteAll(['created' => $created, 'is_bot' => true]); }
protected function _login($org, $view) { $session = Registry::get("session"); $email = strtolower(trim(RM::post("email"))); $pass = RM::post("password"); $user = \User::first(["org_id = ?" => $org->_id, "email = ?" => $email]); if (!$user) { return $view->set('message', 'Invalid credentials'); } else { if (sha1($pass) != $user->password) { return $view->set('message', 'Invalid credentials'); } else { if (!$user->live) { return $view->set('message', 'User account deactivated!!'); } } } $session->erase('Auth\\Login:$token'); // erase login token $user->login = \Shared\Services\Db::time(); $user->save(); $this->_loginRedirect($user, $org); }