Django Access Point
Django Access Point is a powerful package designed to simplify the creation of APIs for user authentication, role-based access control (RBAC), and user management in SaaS projects. It provides robust features for streamlining the process of building APIs that manage users, roles, and permissions, as well as offering flexible support for custom fields across modules.
This package is ideal for developers looking to implement user and role management, and it also supports custom field management, which means users can configure their own fields for any module without additional code.
Key Features:
- User Authentication: Easily manage authentication logic for user accounts.
- Role-based Access Control (RBAC): Assign roles to users and control access to different modules based on those roles.
- CRUD API Generation: Automatically create full CRUD APIs for models, reducing boilerplate code.
- Custom Fields: Enable users to manage custom fields for each module dynamically.
To learn more about the package and its features, you can refer to the full Django Access Point documentation.
Steps to Integrate Django Access Point
1. Add Package Name To Project Settings
- Open your Django project's settings.py file.
- Add the package name
django_access_point
to your project's INSTALLED_APPS:
INSTALLED_APPS = [
...
'rest_framework',
'django_filters',
'django_access_point'
]
2. Create Django App Using Django Access Point Package
Django Access Point provides a command that automatically generates a Django app complete with user management, role management, and authentication-related files. This allows you to focus on writing code for your business logic rather than spending time on creating APIs for authentication, user, and role management.
- To create your app, make sure you’re in the same directory as manage.py and run the following command:
python manage.py createapp userApp
This command will create a Django app named userApp
with APIs for authentication, user, and role management.
3. Add Django App Name To Project Settings
- Open your Django project's settings.py file.
- Add the newly created app name
userApp
to your project's INSTALLED_APPS:
INSTALLED_APPS = [
...
'rest_framework',
'django_filters',
'django_access_point',
'userApp'
]
4. Add AUTH_USER_MODEL to Project Settings
Ensure that you define or update the AUTH_USER_MODEL to point to the model inheriting from UserBase. You can access the model in the path userApp/models.py
.
AUTH_USER_MODEL = 'userApp.User'
TenantUser model, provided by extending the Django Access Point package, offers basic fields that manage user management and authentication. You can add your own fields on top of the TenantUser model and extend its functionality.
5. Add TENANT_MODEL to Project Settings
Ensure that you define TENANT_MODEL to point to the model inheriting from TenantBase. You can access the model in the path userApp/models.py
.
TENANT_MODEL = 'userApp.Tenant'
Tenant model, provided by extending the Django Access Point package, offers basic fields that manage tenant management. You can add your own fields on top of the Tenant model and extend its functionality.
6. Migrate Models to Database
To migrate the newly created app models to the database, use Django's default makemigrations and migrate commands. Follow these steps:
python manage.py makemigrations userApp
python manage.py migrate
7. Update the Project's urls.py
- Open your project’s urls.py (located in the main project folder, e.g., myproject/urls.py).
- Import include from django.urls.
- Add your app's URL configuration using include.
from django.urls import path, include
urlpatterns = [
path('api/', include('userApp.urls')), # Include your app's URLs
]