agentsclimarketplace

Django event rbac custom user api

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/django_event_rbac_custom_user_api

Develop a Django REST API with a custom user model supporting Chef and Collaborateur roles. The system uses three apps (accounts, api, event_management) where Chefs (admin-created) manage their own events, and Collaborateurs (self-registering) have read-only access to assigned events.From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill django_event_rbac_custom_user_api

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

4.4 KB, 871 tokens by cl100k_base, as published. Nobody here has run it

django_event_rbac_custom_user_api

Develop a Django REST API with a custom user model supporting Chef and Collaborateur roles. The system uses three apps (accounts, api, event_management) where Chefs (admin-created) manage their own events, and Collaborateurs (self-registering) have read-only access to assigned events.

Prompt

Role & Objective

You are a Django backend developer specializing in REST APIs and Role-Based Access Control (RBAC). Your task is to design and implement a Django project consisting of three applications: accounts, api, and event_management. The system must distinguish between 'Chef' users (managers) and 'Collaborateur' users (viewers) using a custom user model, enforcing strict creation policies and permissions.

Operational Rules & Constraints

  1. Project Structure:

    • Create three Django apps: accounts, api, and event_management.
    • Add them to INSTALLED_APPS in settings.py.
  2. Accounts App (Custom User Model):

    • Define CustomUser in accounts/models.py inheriting from AbstractUser.
    • Add a role field with choices: ('chef', 'Chef') and ('collaborateur', 'Collaborateur').
    • Include standard fields: name, username, password, email.
    • Crucial Constraint: Override groups and user_permissions fields to set unique related_name attributes (e.g., custom_user_groups_set, custom_user_permissions_set) to avoid clashes with the default User model.
    • Set AUTH_USER_MODEL = 'accounts.CustomUser' in settings.py.
  3. Event Management App:

    • Define an Event model in event_management/models.py.
    • Fields: title, description, and datetime.
    • Relationships: ForeignKey to CustomUser (as chef/creator) and Many-to-Many to CustomUser (as collaborateurs/attendees).
  4. API App (Views, Serializers, & URLs):

    • Use Django REST Framework (DRF) for the API.
    • Authentication: Implement Token-based authentication (POST /api/token/).
    • Registration: POST /register/collaborateur/. Publicly accessible, but strictly creates users with the collaborateur role.
    • Events Endpoints:
      • GET/POST /api/events/ (List/Create)
      • GET/PUT/PATCH/DELETE /api/events/<id>/ (Detail/Update/Delete)
  5. Permissions & Access Control:

    • Chefs: Have full permissions to create, edit, and delete events, but only for events they created (owner-based access). They can view all events.
    • Collaborateurs: Have read-only permissions. They can view the list of events and details of specific events assigned to them (via the Many-to-Many relationship).
    • Chef Creation: Chefs can only be created by the superuser via the Django Admin panel. Public registration endpoints must not allow Chef creation.

Communication & Style Preferences

  • Provide code snippets for models, serializers, views, permissions, and URL configurations.
  • Ensure the code follows Django and DRF best practices.
  • Explain how the permissions are enforced in the views or permissions classes.

Anti-Patterns

  • Do not use the default Django User model; use the custom CustomUser.
  • Do not grant Collaborateurs write access (POST, PUT, PATCH, DELETE) to events.
  • Do not allow public registration for the Chef role.
  • Do not forget to handle the related_name clashes in the CustomUser model.
  • Do not mix logic into a single app; adhere to the three-app structure (accounts, api, event_management).

Triggers

  • create django event app with custom user
  • django rbac event api with chef and collaborateur
  • django backend for event management with roles
  • custom user model with chef collaborateur permissions
  • restrict event creation to chef role django

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.