Muffin-Admin - ส่วนขยายของ Muffin ที่ใช้อินเทอร์เฟซผู้ดูแลระบบ
รองรับ Peewee ORM, Mongo, SQLAlchemy Core ผ่าน Muffin-Rest;
การกรองและการเรียงลำดับรายการอัตโนมัติ
สารบัญ
คุณสมบัติ
ความต้องการ
การติดตั้ง
การใช้งาน
การรับรองความถูกต้อง
การกระทำที่กำหนดเอง
ตัวเลือกการกำหนดค่า
ติดตามข้อผิดพลาด
มีส่วนร่วม
ผู้ร่วมให้ข้อมูล
ใบอนุญาต
หลาม >= 3.9
ควรติดตั้ง Muffin-Admin โดยใช้ pip:
pip ติดตั้ง muffin-admin
ด้วยการสนับสนุน SQLAlchemy Core:
pip ติดตั้ง muffin-admin [sqlalchemy]
ด้วยการสนับสนุน Peewee ORM:
pip ติดตั้ง muffin-admin [peewee]
เริ่มต้นผู้ดูแลระบบ:
จาก muffin_admin นำเข้า Pluginadmin = Plugin(**ตัวเลือก)
เริ่มต้นตัวจัดการผู้ดูแลระบบ (ตัวอย่างสำหรับ Peewee ORM):
จาก muffin_admin นำเข้า PWAdminHandler @admin.route class UserResource(PWAdminHandler): """สร้างทรัพยากรผู้ดูแลระบบสำหรับโมเดลผู้ใช้""" class Meta: """ปรับแต่งทรัพยากร""" # Peewee Model สำหรับโมเดลทรัพยากรผู้ดูแลระบบ = User # Filters filter = 'email' , 'สร้าง', 'is_active', 'บทบาท' # ปรับแต่งสกีมาการทำให้เป็นอนุกรม/ดีซีเรียลไลซ์ schema_meta = { 'load_only': ('รหัสผ่าน',), 'dump_only': ('สร้าง',), } # คอลัมน์ที่จะแสดงคอลัมน์ = 'id', 'email', 'is_active', 'role', 'created' # ไอคอนไอคอน UI วัสดุที่กำหนดเอง = 'บุคคล'
เชื่อมต่อผู้ดูแลระบบกับแอปพลิเคชัน Muffin:
admin.setup(แอพ, **ตัวเลือก)
ตกแต่งฟังก์ชั่นการตรวจสอบสิทธิ์ด้วย admin.check_auth
:
@admin.check_authasync def auth(request):"""วิธีการให้สิทธิ์ปลอม เพียงตรวจสอบว่ามีโทเค็นการรับรองความถูกต้องอยู่ในคำขอ"""return request.headers.get('authorization')
ลงทะเบียนฟังก์ชันเพื่อส่งคืนข้อมูลผู้ใช้:
@admin.get_identityasync def ident(คำขอ):"""รับข้อมูลผู้ใช้ปัจจุบัน"""pk = request.headers.get('authorization')user = User.select().where(User.id == pk) .first()if ผู้ใช้:return {"id": user.id, "fullName": user.email}
ใช้ตัวจัดการการเข้าสู่ระบบสำหรับหน้าการตรวจสอบการตอบสนองผู้ดูแลระบบมาตรฐาน:
@admin.loginasync def เข้าสู่ระบบ(คำขอ):"""เข้าสู่ระบบผู้ใช้"""data = await request.data()user = User.select().where(User.email == data['username'], User.password == data['password']).first()return ResponseJSON(ผู้ใช้และ user.id)
สำหรับการอ้างอิงเพิ่มเติม ให้ตรวจสอบ https://github.com/klen/muffin-admin/tree/develop/examples <examples> ในพื้นที่เก็บข้อมูล
จาก muffin_admin นำเข้า PWAdminHandler @admin.route คลาส UserResource (PWAdminHandler): # ... @PWAdminHandler.action ('users/disable', view = 'list') async def Disable_users (ตนเอง, คำขอ, ทรัพยากร = ไม่มี): ids = request.query.getall ('ids ') # ... @PWAdminHandler.action('users/{id}/admin', view='show') async def mark_admin(ตนเอง, คำขอทรัพยากร=ไม่มี): # ...
ชื่อ | ค่าเริ่มต้น | คำอธิบาย |
คำนำหน้า | "/admin" | คำนำหน้า HTTP URL ของผู้ดูแลระบบ |
ชื่อ | "Muffin Admin" | ชื่อของผู้ดูแลระบบ |
main_js_url | "{prefix}/main.js" | ลิงก์ไปยังไฟล์ JS หลัก |
กำหนดเอง_js_url | "" | ลิงก์ไปยังไฟล์ JS ที่กำหนดเอง |
กำหนดเอง_css_url | "" | ลิงก์ไปยังไฟล์ CSS ที่กำหนดเอง |
เข้าสู่ระบบ_url | None | HTTP URL สำหรับหน้าเข้าสู่ระบบที่คุณกำหนดเอง |
logout_url | None | HTTP URL สำหรับหน้าออกจากระบบที่คุณกำหนดเอง |
เมนู_เรียงลำดับ | True | จัดเรียงรายการเมนู |
auth_storage | "localstorage" | จะเก็บข้อมูลการอนุญาตได้ที่ไหน (localstorage|คุกกี้) |
auth_storage_name | muffin_admin_auth | ที่เก็บข้อมูลในเครื่อง/ชื่อคุกกี้สำหรับข้อมูลการตรวจสอบสิทธิ์ |
app_bar_links | [{'url': '/', 'icon': 'Home', 'title': 'Home'}] | ลิงก์แถบแอป |
การกลายพันธุ์_โหมด | "optimistic" | โหมดการแก้ไขการแก้ไข React-Admin (ในแง่ร้าย | ในแง่ดี | เลิกทำได้) |
หากคุณมีข้อเสนอแนะ รายงานข้อผิดพลาด หรือความรำคาญ โปรดรายงานไปยังเครื่องมือติดตามปัญหาที่ https://github.com/klen/muffin-admin/issues
การพัฒนา Muffin-Admin เกิดขึ้นได้ที่: https://github.com/klen/muffin-admin
เคลน (คิริลล์ เคลนอฟ)
ได้รับอนุญาตภายใต้ใบอนุญาต MIT