Fix authentication state persistence and admin role display

- Implement complete authentication system with JWT token validation
- Add auth provider with persistent login state across page refreshes
- Create multilingual login/register forms with Material-UI components
- Fix token validation using raw SQL queries to bypass Prisma sync issues
- Add comprehensive error handling for expired/invalid tokens
- Create profile and settings pages with full i18n support
- Add proper user role management (admin/user) with database sync
- Implement secure middleware with CSRF protection and auth checks
- Add debug endpoints for troubleshooting authentication issues
- Fix Zustand store persistence for authentication state

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
andupetcu
2025-09-21 01:06:30 +03:00
parent cd1793b4a5
commit ad28ae4174
263 changed files with 502172 additions and 179 deletions

View File

@@ -0,0 +1,33 @@
\id OBA 31-OBA-web.sfm World English Bible (WEB)
\ide UTF-8
\h Obadiah
\toc1 The Book of Obadiah
\toc2 Obadiah
\toc3 Oba
\mt2 The Book of
\mt1 Obadiah
\c 1
\p
\v 1 \w The|strong="H5921"\w* \w vision|strong="H2377"\w* \w of|strong="H3068"\w* \w Obadiah|strong="H5662"\w*. \w This|strong="H3541"\w* \w is|strong="H3068"\w* \w what|strong="H3541"\w* \w the|strong="H5921"\w* \w Lord|strong="H3068"\w*\f + \fr 1:1 \ft The word translated “Lord” is “Adonai.”\f* \w Yahweh|strong="H3068"\w*\f + \fr 1:1 \ft “Yahweh” is Gods proper Name, sometimes rendered “LORD” (all caps) in other translations.\f* \w says|strong="H3541"\w* \w about|strong="H5921"\w* Edom. \w We|strong="H8085"\w* \w have|strong="H3068"\w* \w heard|strong="H8085"\w* \w news|strong="H8052"\w* \w from|strong="H5921"\w* \w Yahweh|strong="H3068"\w*, \w and|strong="H6965"\w* \w an|strong="H7971"\w* \w ambassador|strong="H6735"\w* \w is|strong="H3068"\w* \w sent|strong="H7971"\w* \w among|strong="H5921"\w* \w the|strong="H5921"\w* \w nations|strong="H1471"\w*, saying, “\w Arise|strong="H6965"\w*, \w and|strong="H6965"\w* \w let|strong="H7971"\w*s \w rise|strong="H6965"\w* \w up|strong="H6965"\w* \w against|strong="H5921"\w* \w her|strong="H7971"\w* \w in|strong="H5921"\w* \w battle|strong="H4421"\w*.
\v 2 \w Behold|strong="H2009"\w*,\f + \fr 1:2 \ft “Behold”, from “\+wh הִנֵּה\+wh*”, means look at, take notice, observe, see, or gaze at. It is often used as an interjection.\f* \w I|strong="H5414"\w* \w have|strong="H1471"\w* \w made|strong="H5414"\w* \w you|strong="H5414"\w* \w small|strong="H6996"\w* among \w the|strong="H5414"\w* \w nations|strong="H1471"\w*. \w You|strong="H5414"\w* \w are|strong="H1471"\w* \w greatly|strong="H3966"\w* despised.
\v 3 \w The|strong="H3381"\w* \w pride|strong="H2087"\w* \w of|strong="H3820"\w* \w your|strong="H3381"\w* \w heart|strong="H3820"\w* \w has|strong="H4310"\w* \w deceived|strong="H5377"\w* \w you|strong="H3381"\w*, \w you|strong="H3381"\w* \w who|strong="H4310"\w* \w dwell|strong="H7931"\w* \w in|strong="H7931"\w* \w the|strong="H3381"\w* \w clefts|strong="H2288"\w* \w of|strong="H3820"\w* \w the|strong="H3381"\w* \w rock|strong="H5553"\w*, \w whose|strong="H4310"\w* \w habitation|strong="H7931"\w* \w is|strong="H3820"\w* \w high|strong="H4791"\w*, \w who|strong="H4310"\w* says \w in|strong="H7931"\w* \w his|strong="H7931"\w* \w heart|strong="H3820"\w*, \w Who|strong="H4310"\w* \w will|strong="H4310"\w* \w bring|strong="H3381"\w* \w me|strong="H3381"\w* \w down|strong="H3381"\w* \w to|strong="H3381"\w* \w the|strong="H3381"\w* ground?
\v 4 Though \w you|strong="H7760"\w* \w mount|strong="H5404"\w* \w on|strong="H7760"\w* \w high|strong="H1361"\w* \w as|strong="H3068"\w* \w the|strong="H5002"\w* \w eagle|strong="H5404"\w*, \w and|strong="H3068"\w* though \w your|strong="H3068"\w* \w nest|strong="H7064"\w* \w is|strong="H3068"\w* \w set|strong="H7760"\w* \w among|strong="H8033"\w* \w the|strong="H5002"\w* \w stars|strong="H3556"\w*, \w I|strong="H7760"\w* \w will|strong="H3068"\w* \w bring|strong="H3381"\w* \w you|strong="H7760"\w* \w down|strong="H3381"\w* \w from|strong="H3381"\w* \w there|strong="H8033"\w*,” \w says|strong="H5002"\w* \w Yahweh|strong="H3068"\w*.
\v 5 “If \w thieves|strong="H1590"\w* came \w to|strong="H3808"\w* \w you|strong="H3808"\w*, if \w robbers|strong="H7703"\w* \w by|strong="H3915"\w* \w night|strong="H3915"\w*—oh, \w what|strong="H1767"\w* disaster awaits \w you|strong="H3808"\w*—wouldnt \w they|strong="H3808"\w* only \w steal|strong="H1589"\w* until \w they|strong="H3808"\w* \w had|strong="H1767"\w* \w enough|strong="H1767"\w*? If grape pickers came \w to|strong="H3808"\w* \w you|strong="H3808"\w*, wouldnt \w they|strong="H3808"\w* \w leave|strong="H7604"\w* \w some|strong="H5955"\w* \w gleaning|strong="H5955"\w* \w grapes|strong="H5955"\w*?
\v 6 How \w Esau|strong="H6215"\w* will be \w ransacked|strong="H2664"\w*! How \w his|strong="H6215"\w* \w hidden|strong="H4710"\w* \w treasures|strong="H4710"\w* are sought \w out|strong="H2664"\w*!
\v 7 \w All|strong="H3605"\w* \w the|strong="H3605"\w* \w men|strong="H3605"\w* \w of|strong="H1366"\w* \w your|strong="H3605"\w* alliance \w have|strong="H7965"\w* \w brought|strong="H7760"\w* \w you|strong="H3605"\w* \w on|strong="H7760"\w* \w your|strong="H3605"\w* \w way|strong="H7971"\w*, \w even|strong="H5704"\w* \w to|strong="H5704"\w* \w the|strong="H3605"\w* \w border|strong="H1366"\w*. \w The|strong="H3605"\w* \w men|strong="H3605"\w* \w who|strong="H3605"\w* \w were|strong="H3201"\w* \w at|strong="H3201"\w* \w peace|strong="H7965"\w* \w with|strong="H1285"\w* \w you|strong="H3605"\w* \w have|strong="H7965"\w* \w deceived|strong="H5377"\w* \w you|strong="H3605"\w*, \w and|strong="H7971"\w* \w prevailed|strong="H3201"\w* \w against|strong="H7971"\w* \w you|strong="H3605"\w*. Friends \w who|strong="H3605"\w* \w eat|strong="H3899"\w* \w your|strong="H3605"\w* \w bread|strong="H3899"\w* \w lay|strong="H7760"\w* \w a|strong="H3068"\w* snare \w under|strong="H8478"\w* \w you|strong="H3605"\w*. \w There|strong="H7965"\w* \w is|strong="H3605"\w* \w no|strong="H3605"\w* \w understanding|strong="H8394"\w* \w in|strong="H3899"\w* \w him|strong="H7971"\w*.”
\p
\v 8 “Wont \w I|strong="H3117"\w* \w in|strong="H3068"\w* \w that|strong="H3117"\w* \w day|strong="H3117"\w*”, \w says|strong="H5002"\w* \w Yahweh|strong="H3068"\w*, “destroy \w the|strong="H5002"\w* \w wise|strong="H2450"\w* \w men|strong="H2450"\w* \w out|strong="H3808"\w* \w of|strong="H3068"\w* Edom, \w and|strong="H3068"\w* \w understanding|strong="H8394"\w* \w out|strong="H3808"\w* \w of|strong="H3068"\w* \w the|strong="H5002"\w* \w mountain|strong="H2022"\w* \w of|strong="H3068"\w* \w Esau|strong="H6215"\w*?
\v 9 \w Your|strong="H3772"\w* \w mighty|strong="H1368"\w* \w men|strong="H1368"\w*, \w Teman|strong="H8487"\w*, \w will|strong="H2022"\w* \w be|strong="H2022"\w* \w dismayed|strong="H2865"\w*, \w to|strong="H4616"\w* \w the|strong="H3772"\w* \w end|strong="H4616"\w* \w that|strong="H4616"\w* everyone \w may|strong="H1368"\w* \w be|strong="H2022"\w* \w cut|strong="H3772"\w* \w off|strong="H3772"\w* \w from|strong="H3772"\w* \w the|strong="H3772"\w* \w mountain|strong="H2022"\w* \w of|strong="H2022"\w* \w Esau|strong="H6215"\w* \w by|strong="H2022"\w* \w slaughter|strong="H6993"\w*.
\v 10 \w For|strong="H3772"\w* \w the|strong="H3680"\w* \w violence|strong="H2555"\w* done \w to|strong="H5769"\w* \w your|strong="H3772"\w* brother \w Jacob|strong="H3290"\w*, shame \w will|strong="H3290"\w* \w cover|strong="H3680"\w* \w you|strong="H3772"\w*, \w and|strong="H5769"\w* \w you|strong="H3772"\w* \w will|strong="H3290"\w* \w be|strong="H5769"\w* \w cut|strong="H3772"\w* \w off|strong="H3772"\w* \w forever|strong="H5769"\w*.
\v 11 \w In|strong="H5921"\w* \w the|strong="H5921"\w* \w day|strong="H3117"\w* \w that|strong="H3117"\w* \w you|strong="H5921"\w* \w stood|strong="H5975"\w* \w on|strong="H5921"\w* \w the|strong="H5921"\w* \w other|strong="H5048"\w* \w side|strong="H5048"\w*, \w in|strong="H5921"\w* \w the|strong="H5921"\w* \w day|strong="H3117"\w* \w that|strong="H3117"\w* \w strangers|strong="H2114"\w* \w carried|strong="H7617"\w* \w away|strong="H7617"\w* \w his|strong="H5921"\w* \w substance|strong="H2428"\w* \w and|strong="H3117"\w* \w foreigners|strong="H2114"\w* \w entered|strong="H5975"\w* \w into|strong="H5921"\w* \w his|strong="H5921"\w* \w gates|strong="H8179"\w* \w and|strong="H3117"\w* \w cast|strong="H3032"\w* \w lots|strong="H1486"\w* \w for|strong="H5921"\w* \w Jerusalem|strong="H3389"\w*, \w even|strong="H1571"\w* \w you|strong="H5921"\w* \w were|strong="H3117"\w* \w like|strong="H5921"\w* \w one|strong="H1571"\w* \w of|strong="H3117"\w* \w them|strong="H1992"\w*.
\v 12 \w But|strong="H7200"\w* dont \w look|strong="H7200"\w* down \w on|strong="H3117"\w* \w your|strong="H7200"\w* brother \w in|strong="H3117"\w* \w the|strong="H7200"\w* \w day|strong="H3117"\w* \w of|strong="H1121"\w* \w his|strong="H7200"\w* \w disaster|strong="H5235"\w*, \w and|strong="H1121"\w* dont \w rejoice|strong="H8055"\w* over \w the|strong="H7200"\w* \w children|strong="H1121"\w* \w of|strong="H1121"\w* \w Judah|strong="H3063"\w* \w in|strong="H3117"\w* \w the|strong="H7200"\w* \w day|strong="H3117"\w* \w of|strong="H1121"\w* \w their|strong="H7200"\w* destruction. Dont \w speak|strong="H6310"\w* \w proudly|strong="H1431"\w* \w in|strong="H3117"\w* \w the|strong="H7200"\w* \w day|strong="H3117"\w* \w of|strong="H1121"\w* \w distress|strong="H6869"\w*.
\v 13 Dont enter \w into|strong="H7200"\w* \w the|strong="H7200"\w* \w gate|strong="H8179"\w* \w of|strong="H3117"\w* \w my|strong="H7200"\w* \w people|strong="H5971"\w* \w in|strong="H3117"\w* \w the|strong="H7200"\w* \w day|strong="H3117"\w* \w of|strong="H3117"\w* \w their|strong="H7200"\w* \w calamity|strong="H7451"\w*. Dont \w look|strong="H7200"\w* \w down|strong="H7971"\w* \w on|strong="H3117"\w* \w their|strong="H7200"\w* \w affliction|strong="H7451"\w* \w in|strong="H3117"\w* \w the|strong="H7200"\w* \w day|strong="H3117"\w* \w of|strong="H3117"\w* \w their|strong="H7200"\w* \w calamity|strong="H7451"\w*, \w neither|strong="H1571"\w* seize \w their|strong="H7200"\w* \w wealth|strong="H2428"\w* \w on|strong="H3117"\w* \w the|strong="H7200"\w* \w day|strong="H3117"\w* \w of|strong="H3117"\w* \w their|strong="H7200"\w* \w calamity|strong="H7451"\w*.
\v 14 Dont \w stand|strong="H5975"\w* \w in|strong="H5921"\w* \w the|strong="H5921"\w* crossroads \w to|strong="H5921"\w* \w cut|strong="H3772"\w* \w off|strong="H3772"\w* \w those|strong="H5921"\w* \w of|strong="H3117"\w* \w his|strong="H5921"\w* \w who|strong="H6412"\w* \w escape|strong="H6412"\w*. Dont \w deliver|strong="H5462"\w* \w up|strong="H5975"\w* \w those|strong="H5921"\w* \w of|strong="H3117"\w* \w his|strong="H5921"\w* \w who|strong="H6412"\w* \w remain|strong="H5975"\w* \w in|strong="H5921"\w* \w the|strong="H5921"\w* \w day|strong="H3117"\w* \w of|strong="H3117"\w* \w distress|strong="H6869"\w*.
\v 15 \w For|strong="H3588"\w* \w the|strong="H3605"\w* \w day|strong="H3117"\w* \w of|strong="H3068"\w* \w Yahweh|strong="H3068"\w* \w is|strong="H3068"\w* \w near|strong="H7138"\w* \w all|strong="H3605"\w* \w the|strong="H3605"\w* \w nations|strong="H1471"\w*! \w As|strong="H3117"\w* \w you|strong="H3588"\w* \w have|strong="H3068"\w* \w done|strong="H6213"\w*, \w it|strong="H5921"\w* \w will|strong="H3068"\w* \w be|strong="H3068"\w* \w done|strong="H6213"\w* \w to|strong="H7725"\w* \w you|strong="H3588"\w*. \w Your|strong="H3068"\w* \w deeds|strong="H7218"\w* \w will|strong="H3068"\w* \w return|strong="H7725"\w* \w upon|strong="H5921"\w* \w your|strong="H3068"\w* own \w head|strong="H7218"\w*.
\v 16 \w For|strong="H3588"\w* \w as|strong="H1961"\w* \w you|strong="H3588"\w* \w have|strong="H1961"\w* \w drunk|strong="H8354"\w* \w on|strong="H5921"\w* \w my|strong="H3605"\w* \w holy|strong="H6944"\w* \w mountain|strong="H2022"\w*, \w so|strong="H1961"\w* \w all|strong="H3605"\w* \w the|strong="H3605"\w* \w nations|strong="H1471"\w* \w will|strong="H1961"\w* \w drink|strong="H8354"\w* \w continually|strong="H8548"\w*. \w Yes|strong="H3588"\w*, \w they|strong="H3588"\w* \w will|strong="H1961"\w* \w drink|strong="H8354"\w*, \w swallow|strong="H3886"\w* \w down|strong="H3886"\w*, \w and|strong="H1471"\w* \w will|strong="H1961"\w* \w be|strong="H1961"\w* \w as|strong="H1961"\w* \w though|strong="H3588"\w* \w they|strong="H3588"\w* \w had|strong="H1961"\w* \w not|strong="H3808"\w* \w been|strong="H1961"\w*.
\v 17 \w But|strong="H1961"\w* \w in|strong="H1004"\w* \w Mount|strong="H2022"\w* \w Zion|strong="H6726"\w*, \w there|strong="H1961"\w* \w will|strong="H1961"\w* \w be|strong="H1961"\w* \w those|strong="H1961"\w* \w who|strong="H6413"\w* \w escape|strong="H6413"\w*, \w and|strong="H1004"\w* \w it|strong="H3423"\w* \w will|strong="H1961"\w* \w be|strong="H1961"\w* \w holy|strong="H6944"\w*. \w The|strong="H3423"\w* \w house|strong="H1004"\w* \w of|strong="H1004"\w* \w Jacob|strong="H3290"\w* \w will|strong="H1961"\w* \w possess|strong="H3423"\w* \w their|strong="H3423"\w* \w possessions|strong="H4180"\w*.
\v 18 \w The|strong="H3588"\w* \w house|strong="H1004"\w* \w of|strong="H1004"\w* \w Jacob|strong="H3290"\w* \w will|strong="H3068"\w* \w be|strong="H1961"\w* \w a|strong="H3068"\w* \w fire|strong="H1814"\w*, \w the|strong="H3588"\w* \w house|strong="H1004"\w* \w of|strong="H1004"\w* \w Joseph|strong="H3130"\w* \w a|strong="H3068"\w* \w flame|strong="H3852"\w*, \w and|strong="H3068"\w* \w the|strong="H3588"\w* \w house|strong="H1004"\w* \w of|strong="H1004"\w* \w Esau|strong="H6215"\w* \w for|strong="H3588"\w* \w stubble|strong="H7179"\w*. \w They|strong="H3588"\w* \w will|strong="H3068"\w* burn \w among|strong="H3808"\w* \w them|strong="H1961"\w* \w and|strong="H3068"\w* devour \w them|strong="H1961"\w*. \w There|strong="H1961"\w* \w will|strong="H3068"\w* \w not|strong="H3808"\w* \w be|strong="H1961"\w* \w any|strong="H1961"\w* \w remaining|strong="H8300"\w* \w to|strong="H1696"\w* \w the|strong="H3588"\w* \w house|strong="H1004"\w* \w of|strong="H1004"\w* \w Esau|strong="H6215"\w*.” \w Indeed|strong="H3588"\w*, \w Yahweh|strong="H3068"\w* \w has|strong="H3068"\w* \w spoken|strong="H1696"\w*.
\p
\v 19 Those \w of|strong="H2022"\w* \w the|strong="H3423"\w* \w South|strong="H5045"\w* \w will|strong="H7704"\w* \w possess|strong="H3423"\w* \w the|strong="H3423"\w* \w mountain|strong="H2022"\w* \w of|strong="H2022"\w* \w Esau|strong="H6215"\w*, \w and|strong="H2022"\w* those \w of|strong="H2022"\w* \w the|strong="H3423"\w* \w lowland|strong="H8219"\w*, \w the|strong="H3423"\w* \w Philistines|strong="H6430"\w*. \w They|strong="H6430"\w* \w will|strong="H7704"\w* \w possess|strong="H3423"\w* \w the|strong="H3423"\w* \w field|strong="H7704"\w* \w of|strong="H2022"\w* Ephraim, \w and|strong="H2022"\w* \w the|strong="H3423"\w* \w field|strong="H7704"\w* \w of|strong="H2022"\w* \w Samaria|strong="H8111"\w*. \w Benjamin|strong="H1144"\w* \w will|strong="H7704"\w* \w possess|strong="H3423"\w* \w Gilead|strong="H1568"\w*.
\v 20 \w The|strong="H5704"\w* \w captives|strong="H1546"\w* \w of|strong="H1121"\w* \w this|strong="H2088"\w* \w army|strong="H2426"\w* \w of|strong="H1121"\w* \w the|strong="H5704"\w* \w children|strong="H1121"\w* \w of|strong="H1121"\w* \w Israel|strong="H3478"\w*, \w who|strong="H1121"\w* \w are|strong="H1121"\w* \w among|strong="H3478"\w* \w the|strong="H5704"\w* \w Canaanites|strong="H3669"\w*, \w will|strong="H3478"\w* \w possess|strong="H3423"\w* \w even|strong="H5704"\w* \w to|strong="H5704"\w* \w Zarephath|strong="H6886"\w*; \w and|strong="H1121"\w* \w the|strong="H5704"\w* \w captives|strong="H1546"\w* \w of|strong="H1121"\w* \w Jerusalem|strong="H3389"\w*, \w who|strong="H1121"\w* \w are|strong="H1121"\w* \w in|strong="H3478"\w* \w Sepharad|strong="H5614"\w*, \w will|strong="H3478"\w* \w possess|strong="H3423"\w* \w the|strong="H5704"\w* \w cities|strong="H5892"\w* \w of|strong="H1121"\w* \w the|strong="H5704"\w* \w Negev|strong="H5045"\w*.
\v 21 Saviors \w will|strong="H3068"\w* \w go|strong="H5927"\w* \w up|strong="H5927"\w* \w on|strong="H3068"\w* \w Mount|strong="H2022"\w* \w Zion|strong="H6726"\w* \w to|strong="H3068"\w* \w judge|strong="H8199"\w* \w the|strong="H3068"\w* \w mountains|strong="H2022"\w* \w of|strong="H3068"\w* \w Esau|strong="H6215"\w*, \w and|strong="H3068"\w* \w the|strong="H3068"\w* \w kingdom|strong="H4410"\w* \w will|strong="H3068"\w* \w be|strong="H1961"\w* \w Yahweh|strong="H3068"\w*s.