بنقرة واحدة
division-access-enforcer
Use when implementing division-based access control on any endpoint
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Use when implementing division-based access control on any endpoint
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Record browser-based feature demos as GIFs via Playwright and optionally document them in docs/features/index.md. Trigger with "Demo <feature>" or "Demo and Document <feature>".
Use when creating service modules in apps/api/skillhub/services/
Use when writing API tests in apps/api/tests/
Use when adding services to docker-compose.yml or creating Dockerfiles
Use when implementing error handling across the API, frontend, or MCP server
Use when creating new Flask blueprints in apps/api/skillhub_flask/blueprints/
| name | division-access-enforcer |
| description | Use when implementing division-based access control on any endpoint |
Division enforcement happens in Flask (before_request) — NEVER client-side.
from flask import Blueprint, g, abort
from skillhub_flask.db import get_db
bp = Blueprint("skills_install", __name__)
@bp.route("/api/v1/skills/<slug>/install", methods=["POST"])
def install_skill(slug: str):
db = get_db()
user = g.current_user
skill = db.query(Skill).filter(Skill.slug == slug).first()
if not skill:
abort(404, description="Skill not found")
user_division = user["division"]
authorized = [sd.division_slug for sd in skill.divisions]
if user_division not in authorized:
# Log the denial
audit_log(db, "access.denied", user["user_id"], "skill", skill.id,
{"division": user_division, "required": authorized})
abort(403, description="Division not authorized for this skill")
/api/v1/skills/{slug}/access-request with reason/api/v1/admin/access-requests/{id}/review{"user_id": "uuid", "email": "...", "division": "engineering-org", "role": "Senior Engineer",
"is_platform_team": false, "is_security_team": false}
apps/api/skillhub_flask/blueprints/auth.pyapps/api/skillhub_flask/blueprints/social.pylibs/db/skillhub_db/models/audit.py