From 7992e1e66724fb08edc94f215ce4fa411c3a7006 Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Sun, 25 Oct 2026 02:41:33 +0000 Subject: [PATCH 1/2] fix: strip the development forum's accounts and sessions from the Flarum seed (#9127) ### What changes were proposed in this PR? `bin/forum/flarum.sql` was dumped from a development forum and still held its member accounts, login sessions, visit logs with IP addresses, and an API key that the dashboard's forum sign-up sent. - `flarum.sql`: the three seeded accounts get placeholder emails (`@example.com`) and no password, so their posts stay but nobody can sign in as them. The sessions, the API key and the visit log are dropped, and the posts' IP addresses are cleared. - Sign-up without the key: the seed already allows open sign-up (`allow_sign_up = 1`), so the key only let `FlarumService.register` skip Flarum's CSRF check. The new `bin/extend.php` exempts the sign-up route instead (by default Flarum exempts only login), and both install scripts copy it into the forum. ### Any related issues, documentation, discussions? Closes #9126. Independent of #9005, which is under discussion in #9006. ### How was this PR tested? - `flarum.service.spec.ts` now checks that sign-up sends no `Authorization` header. It passes, and fails against the old service. - On Flarum 1.8.5 (the seed's version) with the cleaned seed: the seed imports, sign-up then login works with `extend.php`, sign-up is rejected by the CSRF check without it, and the seeded accounts cannot sign in. ### Was this PR authored or co-authored using generative AI tooling? (backported from commit d108cc19fda36c7b8aa1b68dfc934c1c3563b99b) Generated-by: Claude Code (claude-opus-5-5) --- bin/README.md | 35 +++++- bin/extend.php | 27 ++++ bin/forum/flarum.sql | 7 +- bin/forum/macos-install.sh | 1 + bin/forum/ubuntu-install.sh | 1 + .../user/flarum/flarum.service.spec.ts | 118 ++++++++++++++++++ .../service/user/flarum/flarum.service.ts | 12 +- 7 files changed, 187 insertions(+), 14 deletions(-) create mode 100644 bin/extend.php create mode 100644 frontend/src/app/dashboard/service/user/flarum/flarum.service.spec.ts diff --git a/bin/README.md b/bin/README.md index dfba4e8bd7e..d0299ee7f9a 100644 --- a/bin/README.md +++ b/bin/README.md @@ -37,4 +37,37 @@ You can also find prebuilt images published by the Texera team on the [Texera Do ## Deployment using images -Subdirectories `single-node` and `k8s` contain configuration files for deploying Texera using the above Docker images. \ No newline at end of file +<<<<<<< HEAD +Subdirectories `single-node` and `k8s` contain configuration files for deploying Texera using the above Docker images. +======= +| Script | Purpose | +| --- | --- | +| `frontend-proto-gen.sh` | Generate the frontend (TypeScript) code from protobuf definitions. | +| `python-proto-gen.sh` | Generate the Python code from protobuf definitions. | +| `fix-format.sh` | Run the repository's code formatters. | +| `protoc-version.txt` | Pins the `protoc` version used by the proto-gen scripts. | + +## Benchmarks + +| Script | Purpose | +| --- | --- | +| `run-benchmarks.sh` | Single entry point for all Texera benchmarks; CI calls this script verbatim. | + +## Licensing + +`licensing/` contains the scripts that audit JAR licenses and generate the +binary `NOTICE`/`LICENSE` files (`audit_jar_licenses.py`, +`check_binary_deps.py`, `concat_license_binary.py`, +`generate_notice_binary.py`) plus their unit tests. + +## Other components & configuration + +| Path | Purpose | +| --- | --- | +| `utils/` | Shared shell helpers (`resolve-texera-home.sh`, `texera-logging.sh`) sourced by other scripts. | +| `pylsp/` | Dockerized Python language server used by the UDF editor. | +| `y-websocket-server/` | Dockerized Yjs websocket server backing collaborative editing. | +| `forum/` | Flarum-based community forum setup (install scripts and seed SQL). | +| `config.php`, `extend.php`, `.htaccess` | Flarum runtime config, extenders, and Apache rewrite rules for the forum. | +| `litellm-config.yaml` | LiteLLM proxy configuration for AI features. | +>>>>>>> d108cc19f (fix: strip the development forum's accounts and sessions from the Flarum seed (#9127)) diff --git a/bin/extend.php b/bin/extend.php new file mode 100644 index 00000000000..11328a914b1 --- /dev/null +++ b/bin/extend.php @@ -0,0 +1,27 @@ +exemptRoute('users.create'), +]; diff --git a/bin/forum/flarum.sql b/bin/forum/flarum.sql index 743b730eacf..857ce2211a7 100644 --- a/bin/forum/flarum.sql +++ b/bin/forum/flarum.sql @@ -66,7 +66,6 @@ CREATE TABLE `access_tokens` ( LOCK TABLES `access_tokens` WRITE; /*!40000 ALTER TABLE `access_tokens` DISABLE KEYS */; -INSERT INTO `access_tokens` VALUES (1,'IgO67IH27IxOvvtgXvET4KHleDvf5TjEmGxSp14r',1,'2023-09-30 20:58:55','2023-09-30 20:58:55','session_remember',NULL,NULL,NULL),(3,'4r7sjWlKaN9uEH45Fh2AyDXtrMjficVfUUqJ8dhe',1,'2023-09-30 21:27:35','2023-09-30 21:27:35','session_remember',NULL,'::1','PostmanRuntime/7.32.3'),(4,'YCA69PvpLrUj8EKaRewSRPxzl16TjBPWOoO43EyG',1,'2023-09-30 21:27:57','2023-09-30 21:27:57','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(5,'j9MM3PDNjw7obly3NIbkSVLTfAPm2HNOm30vh2Z2',1,'2023-09-30 23:03:56','2023-09-30 21:28:45','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(6,'vwGHbn3F26dWqUWYLCuwFJLmZMkNqZwaPI17a3pc',1,'2023-09-30 23:29:56','2023-09-30 23:03:56','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(7,'9ShdhU1u5xH7ItBOq7BOJ4UtA7ghx0wITR2Hc3JE',1,'2023-10-01 00:44:13','2023-09-30 23:29:56','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(8,'gzmjICYTvaGsoZdOQmR7Mekv10sBfzaaKGxEXTSD',1,'2023-10-01 00:44:13','2023-10-01 00:44:13','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(9,'E3huoFZhmSPgCNGH7tPDGPn6rbkZzxqV7mNL1DSq',1,'2023-10-01 00:44:13','2023-10-01 00:44:13','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(10,'lkZvI52vOXxZN8rIuZ2uHywMb9oo9KwXG0LtQhCh',1,'2023-10-01 00:44:14','2023-10-01 00:44:14','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(11,'H8fqc4CY0ay3b8b38CqG78ZLS05yVfgJ066dP9nV',1,'2023-10-01 00:44:14','2023-10-01 00:44:14','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(12,'nYYsFOLrfdaU1I5oP2mX5FFtY1oWplWSNAqYLcDJ',1,'2023-10-01 00:44:15','2023-10-01 00:44:15','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(13,'YIJiG26abCF4toOrK4dALytUy946dlrK3SjuXnC1',1,'2023-10-01 00:44:15','2023-10-01 00:44:15','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(14,'1BaIy5fXJVkcNtLTe5NPIY9B5G6Y0YAfnzgKA03O',1,'2023-10-01 00:44:16','2023-10-01 00:44:16','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(15,'OgrLQ6e4b148yhC2zSU678XcEPyRuyhq4nQ31on1',1,'2023-10-01 00:44:16','2023-10-01 00:44:16','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(16,'oRfwAzYBA6IgJN3LaxDcrOLVdblwY3rWWEbvO7M2',1,'2023-10-01 00:44:17','2023-10-01 00:44:17','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(17,'BzBSUAcVNrUVHrSyaOcC5TuSkYel1GVXUbgYON8g',1,'2023-10-01 00:44:17','2023-10-01 00:44:17','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(18,'xLmdhFcJXwn1eLQuYgs6NanUqgd8hMt6IA8EfXhd',1,'2023-10-01 00:44:18','2023-10-01 00:44:18','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(19,'DB0HhQHL9vm5xQUgiyMIIutM8gWIFtW7PX232Ork',1,'2023-10-01 00:44:18','2023-10-01 00:44:18','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(20,'29hPtmZhMxUlt1zMUTw5wg1xneeIRTFTmTIoQiD3',1,'2023-10-01 00:44:19','2023-10-01 00:44:19','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(21,'1jWDLbLeKKRuZDK1r433fVMmagvzXn9j6VCvjXnP',1,'2023-10-01 00:44:20','2023-10-01 00:44:20','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(22,'OxiTBc4Ck6uh4IZJPH4GBIokrQWcuuLgejoWvuFE',1,'2023-10-01 00:44:20','2023-10-01 00:44:20','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(23,'LieEyFxc6PH30b1MoMuSpYNyIwVut0BLzYSzhygE',1,'2023-10-01 00:44:21','2023-10-01 00:44:21','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(24,'qus5Ym9cwSDncfp8cZBTWOjW4AREEAy3Wb5QKv5k',1,'2023-10-01 00:44:21','2023-10-01 00:44:21','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(25,'sHNjKeAEbDVgYo9lmsHeKEjwlRHttTKgicU6Lo1f',1,'2023-10-01 00:44:22','2023-10-01 00:44:22','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(26,'TJRfYZBuvncK801xKESLQvTincVP14m1JonyIlGv',1,'2023-10-01 00:44:22','2023-10-01 00:44:22','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(27,'rsyvyiAIfG1cZlgyq77zodYTI5AnEvwtX0PXwYwq',1,'2023-10-01 00:44:23','2023-10-01 00:44:23','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(28,'Hyh7OlutN77CgQU4GuvAjsA0UdQNVkOMKgRIxsBO',1,'2023-10-01 00:44:23','2023-10-01 00:44:23','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(29,'AFBhGU2LeT7NYEsQg643Z5TSrczGKhK7bf87rkYb',1,'2023-10-01 00:44:24','2023-10-01 00:44:24','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(30,'SySAlr8N7PRDzzSkukPsqtgaU8zStlLwd1zVZ1cq',1,'2023-10-01 00:44:25','2023-10-01 00:44:25','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(31,'8bjzic0VipL7OzAslWLP7AiNhLaWMKah4tcjhTyd',1,'2023-10-01 00:44:25','2023-10-01 00:44:25','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(32,'MsOzL6beALyKMuDMfktqjYt7eIPnWc07YAZ8lutL',1,'2023-10-01 00:44:26','2023-10-01 00:44:25','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(33,'dxFGxkQ93eRISqF6neomZBGbYEA4I7RZTwFmDGxj',1,'2023-10-01 00:44:26','2023-10-01 00:44:26','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(34,'32G9jSWyWDu2wZUJ7IVJGRqkRt2KPzePcIPdR1eC',1,'2023-10-01 00:44:27','2023-10-01 00:44:27','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(35,'jtKQAPIuJABYmQc8V4HyDwooJ45cTpKkbcRM2FeI',1,'2023-10-01 00:44:28','2023-10-01 00:44:28','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(36,'LinH514826Y6rRKpBpw9MxmNCprKc11dU6iWzlxL',1,'2023-10-01 00:44:28','2023-10-01 00:44:28','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(37,'EXpsMeOSFiHdKiAVKSBBNZfsgWujqAGEFL4SC9yE',1,'2023-10-01 00:44:28','2023-10-01 00:44:28','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(38,'foDJPQuCTDMUVJKA1CCxQ5DbBM7MdV4bMtYrY6fE',1,'2023-10-01 00:44:29','2023-10-01 00:44:29','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(39,'53QcAj9VyGVzefU5YrSjRfPZg66CyDyi658cCODs',1,'2023-10-01 00:44:29','2023-10-01 00:44:29','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(40,'wxMyaEJT4c5tZlCUjUINA7Fj8HZZDEuqc0zgmuhb',1,'2023-10-01 00:44:30','2023-10-01 00:44:30','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(41,'Dhp14tvqGfUZ8642K1AUZsd03OjobUukB7XA9D66',1,'2023-10-01 00:44:30','2023-10-01 00:44:30','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(42,'J0NRTc0WQwYulnNpZRNtkartTsZMsQ91TNEpjEMA',1,'2023-10-01 00:44:31','2023-10-01 00:44:31','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(43,'ZmKiMQ3S0tdqpsloTYHcmBVGD2cBWxX68XuuuBwc',1,'2023-10-01 00:44:31','2023-10-01 00:44:31','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(44,'IpysPXbtY4jiiZlffgAiizqNwaVAO2Q4g2rVaRuA',1,'2023-10-01 00:44:31','2023-10-01 00:44:31','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(45,'RFcyXd9JtPBoSM5ry7bYq6aexc3NSu8V6seawOdA',1,'2023-10-01 00:44:32','2023-10-01 00:44:32','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(46,'Uoksd1RI9T1prtxzGIMHQO0HUwkZDKGiggMPY0v7',1,'2023-10-01 00:44:32','2023-10-01 00:44:32','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(47,'016FV2hSL7sGDvZBmnJw69GyDHoPFKOrF7gDphpf',1,'2023-10-01 00:44:33','2023-10-01 00:44:33','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(48,'afmCT0NIvkYIOhr2npUf8TcbHyNAJ9RLuz3zIdUZ',1,'2023-10-01 00:44:33','2023-10-01 00:44:33','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(49,'fLByiumpiWJVqC3QWLQWnkRuqWaoSqvERcLSOcJ8',1,'2023-10-01 00:44:34','2023-10-01 00:44:34','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(50,'mO8VjPVY5xCOkmkcZdc1k48NSL0AzAnmyheJEtEO',1,'2023-10-01 00:44:34','2023-10-01 00:44:34','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(51,'ffBvflYKh73WMo49OQwAGYzxsgigITrOKmwEQKyF',1,'2023-10-01 00:44:35','2023-10-01 00:44:35','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(52,'pv3jAhJsSU5rjTHHCiwMhrtYT2falLFlfqsB3XGw',1,'2023-10-01 00:44:35','2023-10-01 00:44:35','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(53,'3Epu6gQJAx5ydcXzZVKCgQG2xknvIBQjDXqPFEAC',1,'2023-10-01 00:44:35','2023-10-01 00:44:35','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(54,'maUFZsZWXTaQiTrjUjH9Gp5P9Wi29VfcJzMRnobx',1,'2023-10-01 00:44:36','2023-10-01 00:44:36','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(55,'WJmokOWUDxOD4wQC2GV44bkEedAQCNksP4dzbexg',1,'2023-10-01 00:44:36','2023-10-01 00:44:36','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(56,'pg4hYQqFeWD5mI3JTdXgFZrjdghI4yEeW33vOCe4',1,'2023-10-01 00:44:37','2023-10-01 00:44:37','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(57,'Zft1yLHiWZGefevCpf6FLet4UGCRk3xuJjX6fG78',1,'2023-10-01 00:44:37','2023-10-01 00:44:37','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(58,'gUnqkAIZC5xmYeJI8KNciCvJAm0JKipL5RdbkyhC',1,'2023-10-01 01:02:13','2023-10-01 00:44:38','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(59,'Jc0dBfRrOwQgonzvt0tpFJWSqW6wtGwB4VFu8ITF',1,'2023-10-01 01:02:27','2023-10-01 01:02:27','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(60,'s9fhJkIzplT4hSnYAFXY5nzNMIQwxbrqnEC4zgGj',1,'2023-10-01 01:02:28','2023-10-01 01:02:28','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(61,'tE5aR2DQDtP1aciYJH9Nfdphc7kqXKNgtPB1vm0c',1,'2023-10-01 01:02:29','2023-10-01 01:02:29','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(62,'34xlKg3er8QndJWI81IpALCf9C440dOZPQXWg48p',1,'2023-10-01 01:02:30','2023-10-01 01:02:30','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(63,'3r7GJiU74VmSdWn8e6e2DGH0XV02UP3gYAaUX2Km',1,'2023-10-01 01:02:31','2023-10-01 01:02:31','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(64,'Z9JnkFmJYgRFHhzkVG9jeZCRg0ETBKJNquyeyjpu',1,'2023-10-01 01:02:31','2023-10-01 01:02:31','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(65,'DCnphvtwmk9keyZ2qexX2aTsGYbhZCt1moE4MqlP',1,'2023-10-01 01:02:32','2023-10-01 01:02:32','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(66,'tXW9CBIVpmFmULnPyb4LdHwDxZBGc7ecNyz84Ccd',1,'2023-10-01 01:02:34','2023-10-01 01:02:34','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(67,'V7yKABcDqJRHnoQvkkOb8UMmAZL1TkOUIKqtReaf',1,'2023-10-01 01:02:35','2023-10-01 01:02:35','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(68,'c9lcF6rwbHcF5P7vFsaJ73qiTnYBhmzC9Bk6MPqX',1,'2023-10-01 01:02:36','2023-10-01 01:02:36','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(69,'iMFvlimAQlBZj4NAMXpTXznH5IIMRL0Emojs0Zt6',1,'2023-10-01 01:02:37','2023-10-01 01:02:37','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(70,'jCu8XYEBsU1H4QxsJ86OhfGSS5i68ew3tsdIY9Pc',1,'2023-10-01 01:02:38','2023-10-01 01:02:38','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(71,'RyU3COqEw1NvIaOm8Enm4ntcwj8r9R5KfILnXw6b',1,'2023-10-01 01:02:39','2023-10-01 01:02:39','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(72,'QVQPvSDzFmugaAphlVQkD8gUMlqSn9iEZ49g3oRx',1,'2023-10-01 01:02:40','2023-10-01 01:02:40','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(73,'AEZl1kKRhj6CoYlcyes4XL8CPoyQPgnHhT7SMoX2',1,'2023-10-01 01:02:40','2023-10-01 01:02:40','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(74,'ePSXh06pIuzvF4Wfy3EiMXTMsQ3XqYLybgfrrBIu',1,'2023-10-01 01:02:41','2023-10-01 01:02:41','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(75,'hV3Es4ICkENHehYTcnJUsmErbcYl6aOwvLlGth5B',1,'2023-10-01 01:02:41','2023-10-01 01:02:41','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(76,'061ZDp9jqGxA8o1UezrQnCHmhCdf1lapD0musZxn',1,'2023-10-01 01:02:42','2023-10-01 01:02:42','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(77,'1X07TU38uA9dZGqaoYDlzMCtdgW0C6JCWLa8BkGH',1,'2023-10-01 01:02:42','2023-10-01 01:02:42','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(78,'AMh3T9wwMWSO02L0e5VUbxEx0Y9zQixPdysveI1N',1,'2023-10-01 01:21:55','2023-10-01 01:02:43','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(79,'wQyhzIY1Y6UHx8Kd6vNn9Sf3qJ0OPeCubRvV1w91',1,'2023-10-01 01:02:43','2023-10-01 01:02:43','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(80,'z4saYkKefOw8ZlCyJFt4332FKnh7VnJc9MZWqce8',1,'2023-10-01 01:27:06','2023-10-01 01:22:36','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(81,'xfze5VhgREg1nmJ88smJAHqDs5c6fo9MR7gF4nWf',1,'2023-10-01 01:27:07','2023-10-01 01:27:07','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(82,'1a55Kxeukh3ZW6ymY0PoIr8hIXeLRwVpfH9aegvs',1,'2023-10-01 01:28:27','2023-10-01 01:28:27','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(83,'uWZEXV9JxJBfA2f98LviIV4IjwREi9YGQMORKcxn',1,'2023-10-01 01:28:29','2023-10-01 01:28:29','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(84,'7k6qweq0ZDY94ob2rio01LV6wGb9XxhDDIRW6xbJ',1,'2023-10-01 03:08:13','2023-10-01 01:29:37','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(85,'BWl7NM9nWf9EYrMwJ8uRo0XazCGS9VDdm7oNVUDl',1,'2023-10-01 01:32:49','2023-10-01 01:29:40','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(86,'ipvdQxvIl0j6sGNAHlKpDz0yeWT1yX4JGH6PJWgl',1,'2023-10-01 01:32:49','2023-10-01 01:32:49','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(87,'rl9BZLzdJCSmafu54NZYVDFFJIm7o2hVRvfbhGzx',1,'2023-10-01 01:35:42','2023-10-01 01:33:13','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(88,'2yUVXwxuxYu6l2bWrPpRVFHDg3RnoFcxPTZ6BGzo',1,'2023-10-01 01:35:42','2023-10-01 01:35:42','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(89,'gNxms9UpnIhFsP9EpDIka1k7dcwzPoORYqIRTEcN',1,'2023-10-01 01:35:48','2023-10-01 01:35:48','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(90,'C9lYmW2u6xDXnRqpUtMaHYl9D7JOxCUHMna3neku',1,'2023-10-01 01:43:12','2023-10-01 01:35:55','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(91,'0Abg1coz0ufqhkTm1ym0LO91EpotOAVGuDiIxqcw',1,'2023-10-01 01:56:58','2023-10-01 01:43:13','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(92,'eDnCMzO6TcUbgkspxNb3Eys85PBn3DKuELbibmJQ',1,'2023-10-01 01:56:59','2023-10-01 01:56:59','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(93,'alWcvK2YRMJPAiJ822ByHBHhANhVCE27klaoPnTh',1,'2023-10-01 01:58:18','2023-10-01 01:58:18','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(94,'zYyuCEtEVvTz6p4rAyafPYCtKnfHoILLl5cdt2lV',1,'2023-10-01 01:58:35','2023-10-01 01:58:35','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(95,'EoJYFmb250rzQ6TO40oJfRgyNMWkrwJ8XjPh3N9C',1,'2023-10-01 02:19:08','2023-10-01 01:59:16','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(96,'ZifdxIvsFtbPgoRFjXrhEdsP946eRsr36leC2Idy',1,'2023-10-01 02:19:09','2023-10-01 02:19:09','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(97,'jBANb7STSBPTd9wYftf0X6qt7MsT4o9UlIXEghDW',1,'2023-10-01 02:19:55','2023-10-01 02:19:55','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(98,'4FdytdXEphzlpNLilF4VsEZZ0uJVcwSEPxupZ28Y',1,'2023-10-01 02:20:03','2023-10-01 02:20:03','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(99,'CJVPFkOdrTuJhsxXZKFe3bcWaHlsG8zTBsKBit2a',1,'2023-10-01 02:20:05','2023-10-01 02:20:05','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(100,'KUxj8FDdzprviUJMyBA6em91UghBMqMWRekdIxsW',1,'2023-10-01 02:21:15','2023-10-01 02:21:15','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(101,'zSCne2idbnqQ4VPxwDKeExc9lBE8PGNC7Bk2mDIc',1,'2023-10-01 02:22:41','2023-10-01 02:22:41','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(102,'6sZFf8jz3yCtrGDaGpGgrpZiUt1ZTA1eQLxgJZLt',1,'2023-10-01 02:26:48','2023-10-01 02:22:59','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(103,'w70Nujehy8GakleXKrsxpjveRaOcq9UKcCDVNYpi',1,'2023-10-01 02:26:49','2023-10-01 02:26:49','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(104,'hgjxj2DP7DFYT3pH34n4hnN3ukwc9jQA1Mtjk0sl',1,'2023-10-01 02:26:59','2023-10-01 02:26:59','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(105,'FjTjcPFrfs7GGSeuzLLjb8d9EvjpLa8DL5yMUiy9',1,'2023-10-01 02:36:34','2023-10-01 02:27:05','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(106,'dKsZqWDQXHpKmXfsRhwdsNy2RPgnRek9aYKAP0Mj',1,'2023-10-01 02:36:34','2023-10-01 02:36:34','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(107,'p5trEskoyIgyCjI9xvCfEcjSySYJoS7EGrMYvd92',1,'2023-10-01 02:37:06','2023-10-01 02:37:06','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(108,'KOo50zZdRTTsjjqZRmxVcXlFOYppASuyRTI78xw0',1,'2023-10-01 02:38:55','2023-10-01 02:37:09','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(109,'2l1rIOfa5SKBatw9Za3ZEDBRFrtH2BefxhpPOvUz',1,'2023-10-01 02:38:55','2023-10-01 02:38:55','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(110,'IaV5FtSWsRev5En4Gv8AZFZYHIracF6pBtB1oTq2',1,'2023-10-01 02:50:28','2023-10-01 02:39:23','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(111,'kmxutQ5BESKUnfaSQNlPP46CDaqj39ghXg7ETieF',1,'2023-10-01 02:54:05','2023-10-01 02:50:29','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(112,'GBDerq4EvXK17U5SYwGspa7MTmME2Du4MQsCZIKx',1,'2023-10-01 02:54:05','2023-10-01 02:54:05','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(113,'rcrfbigKCc7FDskUeVgFCsNPZp1O64NQ2tXmFHex',1,'2023-10-01 03:01:39','2023-10-01 02:54:56','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(114,'W7Nk3pBaPjYVz2t2ER8UwWPSrEd2jkIkZct7pDz0',1,'2023-10-01 03:03:40','2023-10-01 03:01:40','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(115,'i9x4UM2XVMOjqPn3HuviNejrZZs9AxOwUetQh2eU',1,'2023-10-01 03:03:40','2023-10-01 03:03:40','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(116,'F0iWVexCNeqeftsB0N1QoVj0qwmtk4XrrTeFa4Vf',1,'2023-10-01 03:05:09','2023-10-01 03:05:09','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(117,'FRBBbJp3Y4lkVqJ7VWMCBNkHMZbId6Jba9hZVsAT',1,'2023-10-01 03:05:24','2023-10-01 03:05:24','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(118,'lXi7wb78mQpY5NdfkfGg1X2TDr8lomhEYYh94IDT',1,'2023-10-01 03:05:38','2023-10-01 03:05:38','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(119,'KWS0txbq19K2UnsZUnsS09qQM1gkKpBnn1cfgZ8V',1,'2023-10-01 03:06:36','2023-10-01 03:06:36','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(121,'GRfW5oM2vXBgpwCGB9aJGlhqyETnP1PRVKeg0skW',1,'2023-10-01 03:08:00','2023-10-01 03:08:00','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(122,'oFSjhY8mQ3GiJEH51ZEff5SOKK6cB9XKcwx3XZGH',1,'2023-10-01 03:10:11','2023-10-01 03:08:13','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(123,'DyOAoy9PiYFzLGce2by6qH9aXdTQeiwknrAWJuWm',1,'2023-10-01 03:10:12','2023-10-01 03:10:12','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(124,'x6uSsx2U5mWSXyfyzU3giw0rZ6SuB9gnkp0eQYzm',1,'2023-10-01 03:10:30','2023-10-01 03:10:30','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(126,'kspNiZoQi64WuRoAigCRvqf47K96Lz7U4Sqxo2sW',1,'2023-10-01 03:11:54','2023-10-01 03:11:54','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(129,'IIDMwybbG9YfINNEzOtkh3Wc11hsd8mdAZ9HarhO',1,'2023-10-01 03:15:53','2023-10-01 03:15:53','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(130,'zAKaaCRa5zLh5NqZeZvBircfhQi7PI9gfFS6jFid',1,'2023-10-01 03:16:11','2023-10-01 03:16:11','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(131,'O9empiSfXPHZFpoDMTaHu5vm5XygEG0tcDzNEq7W',1,'2023-10-05 00:51:51','2023-10-01 03:17:08','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(134,'giR9QOpSNGKggOmaqP3XvD4J4KznsrsL2KGvBXXQ',1,'2023-10-01 04:16:20','2023-10-01 04:16:20','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(135,'B0HsZMHB507t6mB7Eirwq84pNwfZF47eO7Eek6VO',1,'2023-10-01 04:16:39','2023-10-01 04:16:39','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(138,'YKOsCsu82c6QxOuecoeeZDr2SRbS6PRaObaYPLYy',1,'2023-10-01 04:36:43','2023-10-01 04:27:05','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(139,'3fK4W78EVVmMhdmmxkB8sBKjhc8fBRdQhp8ktots',1,'2023-10-01 04:36:44','2023-10-01 04:36:44','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(140,'kVWtXK1ErfVxibup4JyMtabAEQhgoLdu4CXGt5OO',1,'2023-10-01 04:47:53','2023-10-01 04:37:18','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(141,'DWMSux7cZpG5F9w6rQ8mF73r3TdVJn07WFPJJBPa',1,'2023-10-01 04:47:54','2023-10-01 04:47:54','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(142,'5C8IYGXyFbmQ90SQx74bpPfGoetaH6Da8dvLTUMj',1,'2023-10-01 04:48:29','2023-10-01 04:48:29','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(143,'99HaCeAl6La0rDUyUtkLwGoPzqFn0zE7EpnU3bEq',1,'2023-10-01 04:51:11','2023-10-01 04:48:34','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(144,'YNZc1cWQ5CTwDEMW88JHEiqu7lKWtQ8jH94lbXgi',1,'2023-10-01 04:55:09','2023-10-01 04:51:11','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(145,'F5UAZKk88rybNg13pwEQrflUM9IaKgldnnuKG1Eu',1,'2023-10-01 04:55:10','2023-10-01 04:55:10','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(171,'o7wRQkQ01dR8MFpihSG2cwoU06qBp0KehjEVDM89',1,'2023-10-05 00:58:20','2023-10-05 00:51:51','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(174,'O1RIoQBn2pE0EmiflTqzGOPbsnU4RWfRFyty2XIu',1,'2023-10-05 00:58:21','2023-10-05 00:58:21','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(175,'Fg8vVJ2VLXQkhfOMO3LId0dkBEbcR3xwV13FDP01',1,'2023-10-05 01:00:08','2023-10-05 00:58:21','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(176,'NSUb0PmkncZK4JlRaWeGiUv6ob17qycrOK8mk4Kt',1,'2023-10-05 00:58:24','2023-10-05 00:58:24','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(177,'1v62jCinxMxKpTHduoTGxr47aPwG78z7gUpzPLsM',1,'2023-10-05 00:58:24','2023-10-05 00:58:24','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(178,'pD3hLbgzzdWpoUk755B7FDJUiFtGDpEC5otDY5xe',1,'2023-10-08 20:57:14','2023-10-05 01:00:09','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(189,'1DpliGXt67OrjnhQzqhM9E4JkjqGZQfDMbFTQ38z',1,'2023-10-08 19:33:34','2023-10-08 19:33:34','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(190,'hk3rRuZ5LaLDdPpgqTpVUoEqzcoNl4Q04R05Dvzl',1,'2023-10-08 19:34:07','2023-10-08 19:34:07','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(191,'WmtG9MobcXQBB9bmIArdeGYS604jAiEFmfpydgcw',1,'2023-10-08 19:40:10','2023-10-08 19:35:10','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(192,'tNpGp8c6xAha8zi51Ljh34iF8j9dwavGOYLEmdX8',1,'2023-10-08 19:41:32','2023-10-08 19:41:32','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(193,'hUkQ6MzdfceJJ8fgHgVAPcuWfBciHy5Yah0tckJL',1,'2023-10-08 19:46:04','2023-10-08 19:41:54','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(194,'y8UfDdFWS0tEq7qostN2uMhN4MIinaqtqrvCtN56',1,'2023-10-08 19:48:11','2023-10-08 19:46:33','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(195,'s3j8rrPJWql94xG2GgCzOZuJ7ZDhy6yXImPnLqw1',1,'2023-10-08 19:55:30','2023-10-08 19:49:35','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(196,'rjBibPgweU6qBzEAe3DoTkcKHM1Gdc3Ne8mMSW33',1,'2023-10-08 19:55:31','2023-10-08 19:55:31','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(197,'fmPQGhYKQ78grIOEP11wcEU3pldFe5443gyhwUdn',1,'2023-10-08 19:55:39','2023-10-08 19:55:39','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(198,'WqzOm8McASSB8qRk7alI8DAeEQEYvR8MXzg227qa',1,'2023-10-08 19:56:41','2023-10-08 19:56:41','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(199,'gJIK3xo0EGJ31at3MsYsIOs8cDarbn8lSGVZdepu',1,'2023-10-08 19:57:32','2023-10-08 19:57:32','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(200,'Bc0cv0iIJ9h51A6ZbfPJstXRTc0yFKwELdvVv8fN',1,'2023-10-08 19:57:44','2023-10-08 19:57:44','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(201,'6e3gHPWXcIcoqYgYrVWnxIV3bx0wyvO7wbq44t3Q',1,'2023-10-08 19:58:09','2023-10-08 19:58:09','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(202,'f1sMeZCtqN7qGaPyVbSKVCAGTfgHDzGvjaXPeDlu',1,'2023-10-08 19:58:12','2023-10-08 19:58:12','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(203,'Qz40PRVFlDMISsd31E6DKruVvFeeYPXLTosBQAEW',1,'2023-10-08 20:24:01','2023-10-08 19:58:14','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(204,'hugwJil29IvogajgdguBF2jrvzxNBwXLtsV45UOR',1,'2023-10-08 20:24:01','2023-10-08 20:24:01','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(205,'1yxUBHj1eo2rbZQwFX2rD994ejFHwc46j2uVnoqm',1,'2023-10-08 20:24:21','2023-10-08 20:24:21','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(206,'BFMI9kW2C5dz1gljiOUiRUqm9XR1lTT5rBxwIbpO',1,'2023-10-08 20:31:25','2023-10-08 20:24:33','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(207,'KdwFl2XcV0WQMgKqi1VQ2g2hPNFvbfOdUmY0BsPQ',1,'2023-10-29 22:27:49','2023-10-08 20:31:26','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'),(208,'R8OfIxlPbQOC8HCIQv1RJVgwHRTOh2BlzIgpk6eU',1,'2023-10-08 21:02:04','2023-10-08 21:00:26','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(210,'3S5OweRZIajrDwJoLYZXIABFJkhxiQ0Z6eP13YFN',1,'2023-10-10 19:14:38','2023-10-10 19:14:38','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'),(212,'PTGIBwqagqvVtgrjdcRpA8TzSlkDHsmnPoBE9W5Y',1,'2023-10-23 19:07:11','2023-10-23 17:59:20','session',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'),(213,'TR8Eb8toWjfG3fsFkC26KedB3SiYb1wgEnpN97ue',1,'2023-10-23 19:07:46','2023-10-23 19:07:46','session',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'),(214,'rvlzWHyswSkwzzsSXRaNzOVxiwaVHyesMtwOoO3Y',1,'2023-10-29 22:38:18','2023-10-29 22:27:50','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'),(215,'BZvUHqOSG3O1eSyMldElwKFi32L1lgW6ocBEp604',1,'2023-10-29 22:27:51','2023-10-29 22:27:51','session_remember',NULL,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'),(216,'r2xAI188sw9M653bwS87bz61rTggZQlrDr0HtxyU',4,'2024-01-09 00:51:17','2024-01-09 00:38:36','session_remember',NULL,'128.195.14.114','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'),(219,'tGkeficFWCsHiBCXCxewfNRSk145wUFxpzaKTqzb',6,'2024-01-09 00:45:27','2024-01-09 00:45:27','session_remember',NULL,'128.195.14.114','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'),(220,'FMgfrQkdpvBNPnNYmZ1raMuX8fMaxLuVlSFggorK',6,'2024-01-09 00:47:58','2024-01-09 00:47:58','session_remember',NULL,'128.195.14.114','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'),(222,'takqGwdohQk61e7SCWtnczJY0lYFVcNUnMxIFkhr',6,'2024-01-09 02:55:55','2024-01-09 02:55:55','session_remember',NULL,'128.195.14.114','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'),(225,'9NmDqdrDsw02GoB95y8zpuRXT54uUBNA8Wj1iq0u',1,'2024-01-09 03:24:05','2024-01-09 03:24:05','session_remember',NULL,'128.195.14.114','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'); /*!40000 ALTER TABLE `access_tokens` ENABLE KEYS */; UNLOCK TABLES; @@ -98,7 +97,6 @@ CREATE TABLE `api_keys` ( LOCK TABLES `api_keys` WRITE; /*!40000 ALTER TABLE `api_keys` DISABLE KEYS */; -INSERT INTO `api_keys` VALUES ('hdebsyxiigyklxgsqivyswwiisohzlnezzzzzzzz',1,NULL,NULL,NULL,'2023-09-30 21:19:35','2023-10-01 04:14:27'); /*!40000 ALTER TABLE `api_keys` ENABLE KEYS */; UNLOCK TABLES; @@ -187,7 +185,6 @@ CREATE TABLE `discussion_views` ( LOCK TABLES `discussion_views` WRITE; /*!40000 ALTER TABLE `discussion_views` DISABLE KEYS */; -INSERT INTO `discussion_views` VALUES (1,4,5,'128.195.14.114','2024-01-09 00:41:35'),(6,NULL,5,'128.195.14.114','2024-01-09 03:15:01'); /*!40000 ALTER TABLE `discussion_views` ENABLE KEYS */; UNLOCK TABLES; @@ -720,7 +717,7 @@ CREATE TABLE `posts` ( LOCK TABLES `posts` WRITE; /*!40000 ALTER TABLE `posts` DISABLE KEYS */; -INSERT INTO `posts` VALUES (2,2,1,'2023-10-09 19:31:56',1,'comment','

idk

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(3,3,1,'2023-10-09 19:46:22',1,'comment','

**sxxbnsb nxsbxsxnsx**

',NULL,NULL,NULL,NULL,'::1',0,1,0,1),(4,3,2,'2023-10-09 19:46:54',1,'comment','

fjyfj

',NULL,NULL,NULL,NULL,'::1',0,1,0,1),(5,3,3,'2023-10-09 19:47:12',1,'comment','

@myAdmin

\n
',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(6,3,4,'2023-10-23 17:53:08',1,'comment','

sav

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(7,3,5,'2023-10-23 17:54:51',1,'comment','

@myAdmin#6 hfu

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(8,3,6,'2023-10-23 17:55:08',1,'comment','

@myAdmin#6 sahxhb

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(9,3,7,'2023-10-23 17:55:41',1,'comment','

@myAdmin#3 23r3r

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(10,3,8,'2023-10-23 17:56:30',1,'comment','

@myAdmin#6 wgtwqtaw

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(11,3,9,'2023-10-23 17:56:36',1,'comment','

@myAdmin#7 wqfawetet

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(12,3,10,'2023-10-23 17:57:10',1,'comment','

@myAdmin#4 hawegf

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(13,3,11,'2023-10-23 17:57:21',1,'comment','

@myAdmin#12 weakjfhaewf

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(14,3,12,'2023-10-23 17:59:27',1,'comment','

@myAdmin#9 hello

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(15,2,2,'2023-10-23 18:02:19',1,'comment','

hello

\n
',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(16,2,3,'2023-10-23 18:02:46',1,'comment','

ewafwef

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(17,2,4,'2023-10-23 18:02:52',1,'comment','

@myAdmin#16 weagfaewgaweg

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(18,2,5,'2023-10-23 18:03:41',1,'comment','

@myAdmin#17 wefgaew

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(19,2,6,'2023-10-23 18:05:21',1,'comment','

eee

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(20,2,7,'2023-10-23 18:05:27',1,'comment','

@myAdmin#17 ewfwew

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(21,3,13,'2023-10-23 18:09:38',1,'comment','

ewagewg

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(22,3,14,'2023-10-23 18:09:47',1,'comment','

abc

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(23,3,15,'2023-10-23 18:09:52',1,'comment','

@myAdmin#11 abc

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(24,3,16,'2023-10-23 18:12:52',1,'comment','

abcd

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(25,3,17,'2023-10-23 18:13:17',1,'comment','

abcdefg

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(26,3,18,'2023-10-23 18:13:44',1,'comment','

@myAdmin#25 abcdefghijk

',NULL,NULL,NULL,NULL,'::1',0,1,0,1),(27,3,19,'2023-10-23 18:18:20',1,'comment','

@myAdmin#14 123

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(28,2,8,'2023-10-23 18:20:01',1,'comment','

@myAdmin#19 eeee

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(29,2,9,'2023-10-23 18:20:12',1,'comment','

eeee

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(30,2,10,'2023-10-23 18:20:19',1,'comment','

@myAdmin#19 eeeee

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(31,2,11,'2023-10-23 18:20:37',1,'comment','

123

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(32,2,12,'2023-10-23 18:20:43',1,'comment','

@myAdmin#31 1234567

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(33,4,1,'2023-10-23 18:24:29',1,'comment','

welcome

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(34,4,2,'2023-10-23 18:24:38',1,'comment','

@myAdmin#33 good forum

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(35,4,3,'2023-10-23 18:25:24',1,'comment','

@myAdmin#33 yesi think so

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(36,4,4,'2023-10-23 18:35:56',1,'comment','

weafew

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(37,4,5,'2023-10-23 18:36:05',1,'comment','

@myAdmin#36 12345

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(38,4,6,'2023-10-23 18:37:28',1,'comment','

@myAdmin#36 1234567

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(39,2,13,'2023-10-23 18:43:42',1,'comment','

@myAdmin#16 123456789

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(40,2,14,'2023-10-23 19:01:13',1,'comment','

@myAdmin#32 1234

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(41,2,15,'2023-10-23 19:01:49',1,'comment','

@myAdmin#40 123

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(42,2,16,'2023-10-23 19:07:53',1,'comment','

@myAdmin#41 12355

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(43,2,17,'2023-10-23 19:14:37',1,'comment','

123

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(44,2,18,'2023-10-23 19:14:48',1,'comment','

@myAdmin#43 1234

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(45,2,19,'2023-10-23 19:15:28',1,'comment','

@myAdmin#43 gvuyg

',NULL,NULL,NULL,NULL,'::1',0,1,0,0),(46,2,20,'2023-10-23 19:15:43',1,'comment','

@myAdmin#43 kjbk

',NULL,NULL,NULL,NULL,'::1',0,1,0,1),(47,2,21,'2023-10-23 19:27:14',1,'comment','

@myAdmin#46 ewagfewgwe

',NULL,NULL,NULL,NULL,'::1',0,1,46,0),(48,3,20,'2023-10-23 19:29:05',1,'comment','

@myAdmin#3 ewafeg

',NULL,NULL,NULL,NULL,'::1',0,1,3,0),(49,3,21,'2023-10-23 19:29:16',1,'comment','

@myAdmin#26 evvevv

',NULL,NULL,NULL,NULL,'::1',0,1,26,0),(50,3,22,'2023-10-23 19:29:45',1,'comment','

@myAdmin#4 utfiufut

',NULL,NULL,NULL,NULL,'::1',0,1,4,0),(51,5,1,'2024-01-09 00:41:34',4,'comment','

Welcome to the discussion forum of Texera!

',NULL,NULL,NULL,NULL,'128.195.14.114',0,1,0,0); +INSERT INTO `posts` VALUES (2,2,1,'2023-10-09 19:31:56',1,'comment','

idk

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(3,3,1,'2023-10-09 19:46:22',1,'comment','

**sxxbnsb nxsbxsxnsx**

',NULL,NULL,NULL,NULL,NULL,0,1,0,1),(4,3,2,'2023-10-09 19:46:54',1,'comment','

fjyfj

',NULL,NULL,NULL,NULL,NULL,0,1,0,1),(5,3,3,'2023-10-09 19:47:12',1,'comment','

@myAdmin

\n
',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(6,3,4,'2023-10-23 17:53:08',1,'comment','

sav

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(7,3,5,'2023-10-23 17:54:51',1,'comment','

@myAdmin#6 hfu

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(8,3,6,'2023-10-23 17:55:08',1,'comment','

@myAdmin#6 sahxhb

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(9,3,7,'2023-10-23 17:55:41',1,'comment','

@myAdmin#3 23r3r

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(10,3,8,'2023-10-23 17:56:30',1,'comment','

@myAdmin#6 wgtwqtaw

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(11,3,9,'2023-10-23 17:56:36',1,'comment','

@myAdmin#7 wqfawetet

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(12,3,10,'2023-10-23 17:57:10',1,'comment','

@myAdmin#4 hawegf

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(13,3,11,'2023-10-23 17:57:21',1,'comment','

@myAdmin#12 weakjfhaewf

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(14,3,12,'2023-10-23 17:59:27',1,'comment','

@myAdmin#9 hello

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(15,2,2,'2023-10-23 18:02:19',1,'comment','

hello

\n
',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(16,2,3,'2023-10-23 18:02:46',1,'comment','

ewafwef

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(17,2,4,'2023-10-23 18:02:52',1,'comment','

@myAdmin#16 weagfaewgaweg

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(18,2,5,'2023-10-23 18:03:41',1,'comment','

@myAdmin#17 wefgaew

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(19,2,6,'2023-10-23 18:05:21',1,'comment','

eee

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(20,2,7,'2023-10-23 18:05:27',1,'comment','

@myAdmin#17 ewfwew

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(21,3,13,'2023-10-23 18:09:38',1,'comment','

ewagewg

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(22,3,14,'2023-10-23 18:09:47',1,'comment','

abc

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(23,3,15,'2023-10-23 18:09:52',1,'comment','

@myAdmin#11 abc

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(24,3,16,'2023-10-23 18:12:52',1,'comment','

abcd

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(25,3,17,'2023-10-23 18:13:17',1,'comment','

abcdefg

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(26,3,18,'2023-10-23 18:13:44',1,'comment','

@myAdmin#25 abcdefghijk

',NULL,NULL,NULL,NULL,NULL,0,1,0,1),(27,3,19,'2023-10-23 18:18:20',1,'comment','

@myAdmin#14 123

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(28,2,8,'2023-10-23 18:20:01',1,'comment','

@myAdmin#19 eeee

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(29,2,9,'2023-10-23 18:20:12',1,'comment','

eeee

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(30,2,10,'2023-10-23 18:20:19',1,'comment','

@myAdmin#19 eeeee

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(31,2,11,'2023-10-23 18:20:37',1,'comment','

123

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(32,2,12,'2023-10-23 18:20:43',1,'comment','

@myAdmin#31 1234567

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(33,4,1,'2023-10-23 18:24:29',1,'comment','

welcome

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(34,4,2,'2023-10-23 18:24:38',1,'comment','

@myAdmin#33 good forum

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(35,4,3,'2023-10-23 18:25:24',1,'comment','

@myAdmin#33 yesi think so

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(36,4,4,'2023-10-23 18:35:56',1,'comment','

weafew

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(37,4,5,'2023-10-23 18:36:05',1,'comment','

@myAdmin#36 12345

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(38,4,6,'2023-10-23 18:37:28',1,'comment','

@myAdmin#36 1234567

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(39,2,13,'2023-10-23 18:43:42',1,'comment','

@myAdmin#16 123456789

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(40,2,14,'2023-10-23 19:01:13',1,'comment','

@myAdmin#32 1234

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(41,2,15,'2023-10-23 19:01:49',1,'comment','

@myAdmin#40 123

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(42,2,16,'2023-10-23 19:07:53',1,'comment','

@myAdmin#41 12355

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(43,2,17,'2023-10-23 19:14:37',1,'comment','

123

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(44,2,18,'2023-10-23 19:14:48',1,'comment','

@myAdmin#43 1234

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(45,2,19,'2023-10-23 19:15:28',1,'comment','

@myAdmin#43 gvuyg

',NULL,NULL,NULL,NULL,NULL,0,1,0,0),(46,2,20,'2023-10-23 19:15:43',1,'comment','

@myAdmin#43 kjbk

',NULL,NULL,NULL,NULL,NULL,0,1,0,1),(47,2,21,'2023-10-23 19:27:14',1,'comment','

@myAdmin#46 ewagfewgwe

',NULL,NULL,NULL,NULL,NULL,0,1,46,0),(48,3,20,'2023-10-23 19:29:05',1,'comment','

@myAdmin#3 ewafeg

',NULL,NULL,NULL,NULL,NULL,0,1,3,0),(49,3,21,'2023-10-23 19:29:16',1,'comment','

@myAdmin#26 evvevv

',NULL,NULL,NULL,NULL,NULL,0,1,26,0),(50,3,22,'2023-10-23 19:29:45',1,'comment','

@myAdmin#4 utfiufut

',NULL,NULL,NULL,NULL,NULL,0,1,4,0),(51,5,1,'2024-01-09 00:41:34',4,'comment','

Welcome to the discussion forum of Texera!

',NULL,NULL,NULL,NULL,NULL,0,1,0,0); /*!40000 ALTER TABLE `posts` ENABLE KEYS */; UNLOCK TABLES; @@ -932,7 +929,7 @@ CREATE TABLE `users` ( LOCK TABLES `users` WRITE; /*!40000 ALTER TABLE `users` DISABLE KEYS */; -INSERT INTO `users` VALUES (1,'myAdmin',NULL,'xinyual3@uci.edu',1,'$2a$10$0raoWm.MtGloDa95/CDgne54rX9uoa4RlmeoCA.ce9V1axfIHECSK',NULL,NULL,'2023-09-30 20:58:55','2024-01-09 03:24:06',NULL,'2023-10-17 03:07:23',3,49,'2023-10-16 06:52:14',NULL,NULL,NULL,0),(4,'xiaozl3@uci.edu',NULL,'xiaozl3@uci.edu',1,'$2a$10$63ISJ9VtBtA7R33QqNWLxeqb9Qqg97nq6D8E4sSAfIiquLcSO9XHC',NULL,NULL,NULL,'2024-01-09 00:51:18',NULL,NULL,1,1,NULL,NULL,NULL,NULL,0),(6,'linxinyuan@gmail.com',NULL,'linxinyuan@gmail.com',1,'$2a$10$QLbj.1IBcVCfuJmoqLNm4.64sDw23rInF4NDEAw5.9D4V6bd6x0DK',NULL,NULL,NULL,'2024-01-09 02:54:23',NULL,'2024-01-09 02:55:22',0,0,NULL,NULL,NULL,NULL,0); +INSERT INTO `users` VALUES (1,'myAdmin',NULL,'admin@example.com',1,'',NULL,NULL,'2023-09-30 20:58:55','2024-01-09 03:24:06',NULL,'2023-10-17 03:07:23',3,49,'2023-10-16 06:52:14',NULL,NULL,NULL,0),(4,'user4',NULL,'user4@example.com',1,'',NULL,NULL,NULL,'2024-01-09 00:51:18',NULL,NULL,1,1,NULL,NULL,NULL,NULL,0),(6,'user6',NULL,'user6@example.com',1,'',NULL,NULL,NULL,'2024-01-09 02:54:23',NULL,'2024-01-09 02:55:22',0,0,NULL,NULL,NULL,NULL,0); /*!40000 ALTER TABLE `users` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; diff --git a/bin/forum/macos-install.sh b/bin/forum/macos-install.sh index f38b0b972de..a33002228ca 100755 --- a/bin/forum/macos-install.sh +++ b/bin/forum/macos-install.sh @@ -29,6 +29,7 @@ composer create-project flarum/flarum /opt/homebrew/var/www/flarum composer require --working-dir=/opt/homebrew/var/www/flarum michaelbelgium/flarum-discussion-views composer require --working-dir=/opt/homebrew/var/www/flarum fof/byobu:"*" cp config.php /opt/homebrew/var/www/flarum/config.php +cp extend.php /opt/homebrew/var/www/flarum/extend.php cp .htaccess /opt/homebrew/var/www/flarum/public/.htaccess # Database Configuration diff --git a/bin/forum/ubuntu-install.sh b/bin/forum/ubuntu-install.sh index e4d7c119523..bd964345075 100755 --- a/bin/forum/ubuntu-install.sh +++ b/bin/forum/ubuntu-install.sh @@ -32,6 +32,7 @@ composer create-project flarum/flarum /opt/flarum composer require --working-dir=/opt/flarum michaelbelgium/flarum-discussion-views composer require --working-dir=/opt/flarum fof/byobu:"*" sudo cp bin/config.php /opt/flarum/config.php +sudo cp bin/extend.php /opt/flarum/extend.php sudo cp bin/.htaccess /opt/flarum/public/.htaccess sudo chown -R www-data:www-data /opt/flarum sudo mysql -u root -p < sql/flarum.sql diff --git a/frontend/src/app/dashboard/service/user/flarum/flarum.service.spec.ts b/frontend/src/app/dashboard/service/user/flarum/flarum.service.spec.ts new file mode 100644 index 00000000000..b8754dee8b4 --- /dev/null +++ b/frontend/src/app/dashboard/service/user/flarum/flarum.service.spec.ts @@ -0,0 +1,118 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { HttpClientTestingModule, HttpTestingController } from "@angular/common/http/testing"; +import { TestBed } from "@angular/core/testing"; +import { FlarumService } from "./flarum.service"; +import { UserService } from "../../../../common/service/user/user.service"; + +describe("FlarumService", () => { + let service: FlarumService; + let httpMock: HttpTestingController; + + const mockUser = { uid: 42, email: "alice@example.com", googleId: "secret-token" }; + const getCurrentUser = vi.fn(); + + beforeEach(() => { + getCurrentUser.mockReturnValue(mockUser); + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [FlarumService, { provide: UserService, useValue: { getCurrentUser } }], + }); + service = TestBed.inject(FlarumService); + httpMock = TestBed.inject(HttpTestingController); + }); + + afterEach(() => { + httpMock.verify(); + }); + + it("should be created", () => { + expect(service).toBeTruthy(); + }); + + describe("register", () => { + it("POSTs a user with a username derived from email local-part + uid", () => { + service.register().subscribe(); + + const req = httpMock.expectOne("forum/api/users"); + expect(req.request.method).toEqual("POST"); + expect(req.request.body.data.attributes).toEqual({ + username: "alice42", + email: "alice@example.com", + password: "secret-token", + }); + expect(req.request.headers.has("Authorization")).toBe(false); + req.flush({}); + }); + + it("handles an email that contains multiple '@' by using only the first local-part segment", () => { + getCurrentUser.mockReturnValue({ uid: 7, email: "weird@name@example.com", googleId: "g" }); + + service.register().subscribe(); + + const req = httpMock.expectOne("forum/api/users"); + expect(req.request.body.data.attributes.username).toEqual("weird7"); + req.flush({}); + }); + + it("propagates HTTP errors to the subscriber", () => { + const onError = vi.fn(); + service.register().subscribe({ error: onError }); + + const req = httpMock.expectOne("forum/api/users"); + req.flush("boom", { status: 500, statusText: "Server Error" }); + + expect(onError).toHaveBeenCalledTimes(1); + expect(onError.mock.calls[0][0].status).toEqual(500); + }); + }); + + describe("auth", () => { + it("POSTs credentials to the token endpoint", () => { + service.auth().subscribe(); + + const req = httpMock.expectOne("forum/api/token"); + expect(req.request.method).toEqual("POST"); + expect(req.request.body).toEqual({ + identification: "alice@example.com", + password: "secret-token", + remember: "1", + }); + req.flush({}); + }); + + it("propagates HTTP errors to the subscriber", () => { + const onError = vi.fn(); + service.auth().subscribe({ error: onError }); + + const req = httpMock.expectOne("forum/api/token"); + req.flush("boom", { status: 500, statusText: "Server Error" }); + + expect(onError).toHaveBeenCalledTimes(1); + expect(onError.mock.calls[0][0].status).toEqual(500); + }); + }); + + it("throws when no user is logged in", () => { + getCurrentUser.mockReturnValue(undefined); + expect(() => service.register()).toThrow(); + expect(() => service.auth()).toThrow(); + }); +}); diff --git a/frontend/src/app/dashboard/service/user/flarum/flarum.service.ts b/frontend/src/app/dashboard/service/user/flarum/flarum.service.ts index 3e2722621bb..98da83eaca6 100644 --- a/frontend/src/app/dashboard/service/user/flarum/flarum.service.ts +++ b/frontend/src/app/dashboard/service/user/flarum/flarum.service.ts @@ -32,15 +32,11 @@ export class FlarumService { register() { const user = this.userService.getCurrentUser(); - return this.http.post( - "forum/api/users", - { - data: { - attributes: { username: user!.email.split("@")[0] + user!.uid, email: user!.email, password: user!.googleId }, - }, + return this.http.post("forum/api/users", { + data: { + attributes: { username: user!.email.split("@")[0] + user!.uid, email: user!.email, password: user!.googleId }, }, - { headers: { Authorization: "Token hdebsyxiigyklxgsqivyswwiisohzlnezzzzzzzz;userId=1" } } - ); + }); } auth() { From 64ddf85cdadb3e388d9eeccd3004156c758f1d71 Mon Sep 17 00:00:00 2001 From: mengw15 <125719918+mengw15@users.noreply.github.com> Date: Tue, 27 Oct 2026 15:52:17 -0700 Subject: [PATCH 2/2] fix(v1.2): resolve the conflicts (keep release/v1.2's README, drop the spec it does not have) release/v1.2's bin/README.md has no table of the files under bin/, so the row #9127 edits does not exist there. flarum.service.spec.ts does not exist on release/v1.2 either, so the copy the cherry-pick added is removed. The other five files are as in #9127. --- bin/README.md | 35 +----- .../user/flarum/flarum.service.spec.ts | 118 ------------------ 2 files changed, 1 insertion(+), 152 deletions(-) delete mode 100644 frontend/src/app/dashboard/service/user/flarum/flarum.service.spec.ts diff --git a/bin/README.md b/bin/README.md index d0299ee7f9a..dfba4e8bd7e 100644 --- a/bin/README.md +++ b/bin/README.md @@ -37,37 +37,4 @@ You can also find prebuilt images published by the Texera team on the [Texera Do ## Deployment using images -<<<<<<< HEAD -Subdirectories `single-node` and `k8s` contain configuration files for deploying Texera using the above Docker images. -======= -| Script | Purpose | -| --- | --- | -| `frontend-proto-gen.sh` | Generate the frontend (TypeScript) code from protobuf definitions. | -| `python-proto-gen.sh` | Generate the Python code from protobuf definitions. | -| `fix-format.sh` | Run the repository's code formatters. | -| `protoc-version.txt` | Pins the `protoc` version used by the proto-gen scripts. | - -## Benchmarks - -| Script | Purpose | -| --- | --- | -| `run-benchmarks.sh` | Single entry point for all Texera benchmarks; CI calls this script verbatim. | - -## Licensing - -`licensing/` contains the scripts that audit JAR licenses and generate the -binary `NOTICE`/`LICENSE` files (`audit_jar_licenses.py`, -`check_binary_deps.py`, `concat_license_binary.py`, -`generate_notice_binary.py`) plus their unit tests. - -## Other components & configuration - -| Path | Purpose | -| --- | --- | -| `utils/` | Shared shell helpers (`resolve-texera-home.sh`, `texera-logging.sh`) sourced by other scripts. | -| `pylsp/` | Dockerized Python language server used by the UDF editor. | -| `y-websocket-server/` | Dockerized Yjs websocket server backing collaborative editing. | -| `forum/` | Flarum-based community forum setup (install scripts and seed SQL). | -| `config.php`, `extend.php`, `.htaccess` | Flarum runtime config, extenders, and Apache rewrite rules for the forum. | -| `litellm-config.yaml` | LiteLLM proxy configuration for AI features. | ->>>>>>> d108cc19f (fix: strip the development forum's accounts and sessions from the Flarum seed (#9127)) +Subdirectories `single-node` and `k8s` contain configuration files for deploying Texera using the above Docker images. \ No newline at end of file diff --git a/frontend/src/app/dashboard/service/user/flarum/flarum.service.spec.ts b/frontend/src/app/dashboard/service/user/flarum/flarum.service.spec.ts deleted file mode 100644 index b8754dee8b4..00000000000 --- a/frontend/src/app/dashboard/service/user/flarum/flarum.service.spec.ts +++ /dev/null @@ -1,118 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { HttpClientTestingModule, HttpTestingController } from "@angular/common/http/testing"; -import { TestBed } from "@angular/core/testing"; -import { FlarumService } from "./flarum.service"; -import { UserService } from "../../../../common/service/user/user.service"; - -describe("FlarumService", () => { - let service: FlarumService; - let httpMock: HttpTestingController; - - const mockUser = { uid: 42, email: "alice@example.com", googleId: "secret-token" }; - const getCurrentUser = vi.fn(); - - beforeEach(() => { - getCurrentUser.mockReturnValue(mockUser); - TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - providers: [FlarumService, { provide: UserService, useValue: { getCurrentUser } }], - }); - service = TestBed.inject(FlarumService); - httpMock = TestBed.inject(HttpTestingController); - }); - - afterEach(() => { - httpMock.verify(); - }); - - it("should be created", () => { - expect(service).toBeTruthy(); - }); - - describe("register", () => { - it("POSTs a user with a username derived from email local-part + uid", () => { - service.register().subscribe(); - - const req = httpMock.expectOne("forum/api/users"); - expect(req.request.method).toEqual("POST"); - expect(req.request.body.data.attributes).toEqual({ - username: "alice42", - email: "alice@example.com", - password: "secret-token", - }); - expect(req.request.headers.has("Authorization")).toBe(false); - req.flush({}); - }); - - it("handles an email that contains multiple '@' by using only the first local-part segment", () => { - getCurrentUser.mockReturnValue({ uid: 7, email: "weird@name@example.com", googleId: "g" }); - - service.register().subscribe(); - - const req = httpMock.expectOne("forum/api/users"); - expect(req.request.body.data.attributes.username).toEqual("weird7"); - req.flush({}); - }); - - it("propagates HTTP errors to the subscriber", () => { - const onError = vi.fn(); - service.register().subscribe({ error: onError }); - - const req = httpMock.expectOne("forum/api/users"); - req.flush("boom", { status: 500, statusText: "Server Error" }); - - expect(onError).toHaveBeenCalledTimes(1); - expect(onError.mock.calls[0][0].status).toEqual(500); - }); - }); - - describe("auth", () => { - it("POSTs credentials to the token endpoint", () => { - service.auth().subscribe(); - - const req = httpMock.expectOne("forum/api/token"); - expect(req.request.method).toEqual("POST"); - expect(req.request.body).toEqual({ - identification: "alice@example.com", - password: "secret-token", - remember: "1", - }); - req.flush({}); - }); - - it("propagates HTTP errors to the subscriber", () => { - const onError = vi.fn(); - service.auth().subscribe({ error: onError }); - - const req = httpMock.expectOne("forum/api/token"); - req.flush("boom", { status: 500, statusText: "Server Error" }); - - expect(onError).toHaveBeenCalledTimes(1); - expect(onError.mock.calls[0][0].status).toEqual(500); - }); - }); - - it("throws when no user is logged in", () => { - getCurrentUser.mockReturnValue(undefined); - expect(() => service.register()).toThrow(); - expect(() => service.auth()).toThrow(); - }); -});