muffin admin
1.0.0
Muffin-Admin -- 管理インターフェイスを実装する Muffin の拡張機能
Muffin-Rest を介した Peewee ORM、Mongo、SQLAlchemy Core のサポート。
項目の自動フィルタリングと並べ替え。
コンテンツ
特徴
要件
インストール
使用法
認証
カスタムアクション
構成オプション
バグトラッカー
貢献する
貢献者
ライセンス
Python >= 3.9
Muffin-Admin はpip を使用してインストールする必要があります。
pip インストール muffin-admin
SQLAlchemy コアのサポートにより:
pip install muffin-admin[sqlalchemy]
Peewee ORM サポートの場合:
pip install muffin-admin[ピーウィー]
管理者を初期化します。
from muffin_admin import Pluginadmin = Plugin(**options)
管理ハンドラーを初期化します (Peeweee ORM の例)。
muffin_admin からのインポート PWAdminHandler @admin.route class UserResource(PWAdminHandler): """ユーザー モデルの管理リソースを作成します。""" class Meta: """リソースを調整します。""" # 管理リソースの Peewee モデル モデル = ユーザー # フィルター filters = 'email' , 'created', 'is_active', 'role' # シリアル化/逆シリアル化スキーマを調整する schema_meta = { 'load_only': ('パスワード',), 'ダンプのみ': ('作成済み',), } # 表示する列 columns = 'id', 'email', 'is_active', 'role', 'created' # カスタム マテリアル UI アイコン icon = 'People'
管理者を Muffin アプリケーションに接続します。
admin.setup(アプリ, **オプション)
admin.check_auth
を使用して認証関数を装飾します。
@admin.check_authasync def auth(request):"""偽の認証メソッド。リクエストに認証トークンが存在するかどうかだけをチェックします。"""return request.headers.get('authorization')
ユーザーの情報を返す関数を登録します。
@admin.get_identityasync def ident(request):"""現在のユーザー情報を取得します。"""pk = request.headers.get('authorization')user = User.select().where(User.id == pk) .first()if user:return {"id": user.id, "fullName": user.email}
標準の反応管理者認証ページのログイン ハンドラーを実装します。
@admin.loginasync def login(request):"""ユーザーをログインします。"""data = await request.data()user = User.select().where(User.email == data['username'], User.password == data['password']).first()return ResponseJSON(user および user.id)
さらに参照するには、リポジトリの https://github.com/klen/muffin-admin/tree/develop/examples <examples> を確認してください。
muffin_admin からのインポート PWAdminHandler @admin.route class UserResource(PWAdminHandler): # ... @PWAdminHandler.action('users/disable', view='list') async def disable_users(self, request, resource=None): ids = request.query.getall('ids ') # ... @PWAdminHandler.action('users/{id}/admin', view='show') async def mark_admin(self, request,リソース=なし): # ...
名前 | デフォルト値 | 説明 |
接頭辞 | "/admin" | 管理者のHTTP URLプレフィックス |
タイトル | "Muffin Admin" | 管理者の役職 |
main_js_url | "{prefix}/main.js" | メインの JS ファイルへのリンク |
カスタムjs_url | "" | カスタム JS ファイルへのリンク |
カスタムcss_url | "" | カスタム CSS ファイルへのリンク |
ログインURL | None | カスタム ログイン ページの HTTP URL |
ログアウト_url | None | カスタム ログアウト ページの HTTP URL |
メニューソート | True | メニュー項目を並べ替える |
認証ストレージ | "localstorage" | 認証情報を保存する場所 (localstorage|cookie) |
認証ストレージ名 | muffin_admin_auth | 認証情報の Localstorage/Cookie 名 |
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ライセンスに基づいてライセンスされています。