Skip to content

Latest commit

ย 

History

History
93 lines (69 loc) ยท 2.88 KB

File metadata and controls

93 lines (69 loc) ยท 2.88 KB

ืžื“ืจื™ืš ืคืื ืœ ื”ื ื™ื”ื•ืœ

๐Ÿ”’ ืื‘ื˜ื—ื”

ื”ืืชืจ ื›ืขืช ืžื•ื’ืŸ ืœื—ืœื•ื˜ื™ืŸ!

  • ื›ืœ ื”ื“ืคื™ื ื“ื•ืจืฉื™ื ื”ืชื—ื‘ืจื•ืช (ืžืœื‘ื“ ื“ืฃ ื”ื‘ื™ืช ื•ื”ืจืฉืžื”)
  • ื“ืฃ ื”ื ื™ื”ื•ืœ ื–ืžื™ืŸ ืจืง ืœืžื ื”ืœื™ื
  • 3 ืฉื›ื‘ื•ืช ืื‘ื˜ื—ื”: Middleware, Server-Side, API
  • ืื™ ืืคืฉืจ ืœืขืงื•ืฃ ืืช ื”ื”ื’ื ื”

ื’ื™ืฉื” ืœืคืื ืœ ื”ื ื™ื”ื•ืœ

ืคืื ืœ ื”ื ื™ื”ื•ืœ ื–ืžื™ืŸ ืจืง ืœืžืฉืชืžืฉื™ื ืขื ื”ืจืฉืื•ืช ืžื ื”ืœ (role: 'admin').

ื›ื ื™ืกื” ืœืคืื ืœ

  1. ื”ืชื—ื‘ืจ ืœืžืขืจื›ืช ืขื ืžืฉืชืžืฉ ืžื ื”ืœ
  2. ื‘ื“ืฉื‘ื•ืจื“, ืœื—ืฅ ืขืœ "ืคืื ืœ ื ื™ื”ื•ืœ"
  3. ืื• ื’ืฉ ื™ืฉื™ืจื•ืช ืœ: /admin

ื”ื’ื ื”: ืžืฉืชืžืฉ ืจื’ื™ืœ ืฉื™ื ืกื” ืœื’ืฉืช ื™ื•ืขื‘ืจ ืื•ื˜ื•ืžื˜ื™ืช ืœื“ืฉื‘ื•ืจื“.

ืชื›ื•ื ื•ืช ื”ืคืื ืœ

1. ื ื™ื”ื•ืœ ืžืฉืชืžืฉื™ื

  • ืฆืคื™ื™ื”: ืจืฉื™ืžื” ืžืœืื” ืฉืœ ื›ืœ ื”ืžืฉืชืžืฉื™ื ื‘ืžืขืจื›ืช
  • ืขืจื™ื›ื”: ืฉื™ื ื•ื™ ืฉื ืžืฉืชืžืฉ ื•ืชืคืงื™ื“ (ืžืฉืชืžืฉ/ืžื ื”ืœ)
  • ืžื—ื™ืงื”: ื”ืกืจืช ืžืฉืชืžืฉื™ื ืžื”ืžืขืจื›ืช (ืœื ื ื™ืชืŸ ืœืžื—ื•ืง ืืช ืขืฆืžืš)
  • ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช: ื ืงื•ื“ื•ืช, ืขืžื•ื“ื™ื ืฉื”ื•ืฉืœืžื•, ืชืืจื™ืš ื”ืฆื˜ืจืคื•ืช

2. ื ื™ื”ื•ืœ ืกืคืจื™ื

  • ืฆืคื™ื™ื”: ืจืฉื™ืžืช ื›ืœ ื”ืกืคืจื™ื ื‘ืžืขืจื›ืช
  • ืžื—ื™ืงื”: ื”ืกืจืช ืกืคืจื™ื (ื›ื•ืœืœ ื›ืœ ื”ืชืžื•ื ื•ืช ื•ื”ื ืชื•ื ื™ื)
  • ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช: ืžืกืคืจ ืขืžื•ื“ื™ื, ืื—ื•ื– ื”ืฉืœืžื”

3. ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ื›ืœืœื™ื•ืช

  • ืกื”"ื› ืžืฉืชืžืฉื™ื, ืกืคืจื™ื, ืขืžื•ื“ื™ื ื•ื ืงื•ื“ื•ืช
  • ืื—ื•ื– ื”ืฉืœืžืช ืขืžื•ื“ื™ื ื‘ืžืขืจื›ืช
  • ืžืžื•ืฆืข ื ืงื•ื“ื•ืช ืœืžืฉืชืžืฉ
  • ื˜ื‘ืœืช ืžืฉืชืžืฉื™ื ืžื•ื‘ื™ืœื™ื

ื”ืจืฉืื•ืช API

ื›ืœ ื”-API endpoints ืฉืœ ื”ื ื™ื”ื•ืœ ืžื•ื’ื ื™ื ื•ื“ื•ืจืฉื™ื:

  1. ืžืฉืชืžืฉ ืžื—ื•ื‘ืจ (session)
  2. ืชืคืงื™ื“ ืžื ื”ืœ (role: 'admin')

Endpoints ื–ืžื™ื ื™ื:

ืžื—ื™ืงืช ืžืฉืชืžืฉ

DELETE /api/admin/users/delete
Body: { userId: string }

ืขื“ื›ื•ืŸ ืžืฉืชืžืฉ

PUT /api/admin/users/update
Body: { userId: string, updates: { name?, role? } }

ืžื—ื™ืงืช ืกืคืจ

DELETE /api/admin/books/delete
Body: { bookPath: string }

ื”ืคื™ื›ืช ืžืฉืชืžืฉ ืœืžื ื”ืœ

ืœืฉื™ื ื•ื™ ืžืฉืชืžืฉ ืงื™ื™ื ืœืžื ื”ืœ, ืขืจื•ืš ืืช ื”ืงื•ื‘ืฅ data/users.json:

{
  "id": "...",
  "email": "admin@example.com",
  "name": "Admin User",
  "role": "admin",  // ืฉื ื” ืž-"user" ืœ-"admin"
  "createdAt": "..."
}

ืื‘ื˜ื—ื”

  • ื›ืœ ื”ืคืขื•ืœื•ืช ืžืชื•ืขื“ื•ืช ื‘ืงื•ื ืกื•ืœ
  • ืœื ื ื™ืชืŸ ืœืžื—ื•ืง ืืช ืขืฆืžืš ื›ืžื ื”ืœ
  • ืžื—ื™ืงืช ืกืคืจ ืžืกื™ืจื” ืืช ื›ืœ ื”ืงื‘ืฆื™ื ื”ืงืฉื•ืจื™ื
  • ืžื—ื™ืงืช ืžืฉืชืžืฉ ื”ื™ื ืคืขื•ืœื” ื‘ืœืชื™ ื”ืคื™ื›ื”

ื˜ื™ืคื™ื

  1. ื’ื™ื‘ื•ื™: ื’ื‘ื” ืืช ืชื™ืงื™ื™ืช data/ ืœืคื ื™ ืžื—ื™ืงื•ืช ื’ื“ื•ืœื•ืช
  2. ื‘ื“ื™ืงื”: ื‘ื“ื•ืง ืืช ื”ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ืœืคื ื™ ืžื—ื™ืงืช ืžืฉืชืžืฉื™ื
  3. ืชืงืฉื•ืจืช: ื”ื•ื“ืข ืœืžืฉืชืžืฉื™ื ืœืคื ื™ ืžื—ื™ืงืช ื—ืฉื‘ื•ื ื