All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m20s
v0.9.5 — 账号安全管控 + 内容资产页: - 首次登录强制改密(must_change_password + ForceChangePasswordModal) - 并发会话限制(ActiveSession + SessionJWT认证,可配置桌面/移动端会话数) - Token生命周期缩短(access 30min, refresh 1天) - 登录IP记录(LoginRecord模型,为异常检测打基础) - 内容资产页(超管三级折叠/团队管两级折叠,按需懒加载) v0.9.6 — UI修缮: - 侧栏导航排序(内容资产移到用户管理下方) - 视频网格高度调整(440px,3行+暗示可滚动) - 秒数单位统一(不再换算为分钟/小时) - 提示词标签溢出修复 + 弹窗方向自适应 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
3.6 KiB
Python
60 lines
3.6 KiB
Python
from django.urls import path
|
|
from . import views
|
|
|
|
urlpatterns = [
|
|
# Media upload
|
|
path('media/upload', views.upload_media_view, name='media_upload'),
|
|
# Video generation
|
|
path('video/generate', views.video_generate_view, name='video_generate'),
|
|
path('video/tasks', views.video_tasks_list_view, name='video_tasks_list'),
|
|
path('video/tasks/<uuid:task_id>', views.video_task_detail_view, name='video_task_detail'),
|
|
# Public announcement
|
|
path('announcement', views.announcement_view, name='announcement'),
|
|
|
|
# ── Super Admin: Dashboard ──
|
|
path('admin/stats', views.admin_stats_view, name='admin_stats'),
|
|
|
|
# ── Super Admin: Team management ──
|
|
path('admin/teams', views.admin_teams_list_view, name='admin_teams_list'),
|
|
path('admin/teams/create', views.admin_team_create_view, name='admin_team_create'),
|
|
path('admin/teams/<int:team_id>', views.admin_team_detail_view, name='admin_team_detail'),
|
|
path('admin/teams/<int:team_id>/topup', views.admin_team_topup_view, name='admin_team_topup'),
|
|
path('admin/teams/<int:team_id>/set-pool', views.admin_team_set_pool_view, name='admin_team_set_pool'),
|
|
path('admin/teams/<int:team_id>/admin', views.admin_team_create_admin_view, name='admin_team_create_admin'),
|
|
|
|
# ── Super Admin: User management ──
|
|
path('admin/users', views.admin_users_list_view, name='admin_users_list'),
|
|
path('admin/users/create', views.admin_create_user_view, name='admin_create_user'),
|
|
path('admin/users/<int:user_id>', views.admin_user_detail_view, name='admin_user_detail'),
|
|
path('admin/users/<int:user_id>/quota', views.admin_user_quota_view, name='admin_user_quota'),
|
|
path('admin/users/<int:user_id>/status', views.admin_user_status_view, name='admin_user_status'),
|
|
path('admin/users/<int:user_id>/reset-password', views.admin_reset_password_view, name='admin_reset_password'),
|
|
|
|
# ── Super Admin: Records, Settings & Audit Logs ──
|
|
path('admin/records', views.admin_records_view, name='admin_records'),
|
|
path('admin/settings', views.admin_settings_view, name='admin_settings'),
|
|
path('admin/logs', views.admin_audit_logs_view, name='admin_audit_logs'),
|
|
|
|
# ── Super Admin: Content Assets ──
|
|
path('admin/assets/overview', views.admin_assets_overview, name='admin_assets_overview'),
|
|
path('admin/assets/team/<int:team_id>/members', views.admin_assets_team_members, name='admin_assets_team_members'),
|
|
path('admin/assets/user/<int:user_id>/videos', views.admin_assets_user_videos, name='admin_assets_user_videos'),
|
|
|
|
# ── Team Admin: Team management ──
|
|
path('team/info', views.team_info_view, name='team_info'),
|
|
path('team/stats', views.team_stats_view, name='team_stats'),
|
|
path('team/members', views.team_members_list_view, name='team_members_list'),
|
|
path('team/members/create', views.team_member_create_view, name='team_member_create'),
|
|
path('team/members/<int:member_id>', views.team_member_detail_view, name='team_member_detail'),
|
|
path('team/members/<int:member_id>/quota', views.team_member_quota_view, name='team_member_quota'),
|
|
path('team/members/<int:member_id>/status', views.team_member_status_view, name='team_member_status'),
|
|
|
|
# ── Team Admin: Content Assets ──
|
|
path('team/assets/overview', views.team_assets_overview, name='team_assets_overview'),
|
|
path('team/assets/member/<int:member_id>/videos', views.team_assets_member_videos, name='team_assets_member_videos'),
|
|
|
|
# ── Profile: User's own data ──
|
|
path('profile/overview', views.profile_overview_view, name='profile_overview'),
|
|
path('profile/records', views.profile_records_view, name='profile_records'),
|
|
]
|