78 lines
2.7 KiB
Markdown
78 lines
2.7 KiB
Markdown
# users
|
|
|
|
With the django library users, you are abel to register users, add users, login, logout and do some basic adjustments for the user. This library includes some pages for that based on the extension theme.
|
|
|
|
## Requirements
|
|
### Python
|
|
You need to ensure that pytz is available in your python environment.
|
|
|
|
### Django libs
|
|
You need to integrate the themes library as well.
|
|
|
|
## Integration
|
|
|
|
Clone the library in your django application.
|
|
|
|
### Configurations in your settings.py
|
|
Add the following line to the list ```INSTALLED_APPS```:
|
|
```
|
|
'users.apps.UsersConfig',
|
|
```
|
|
and this line to let django know the login url
|
|
```
|
|
LOGIN_URL = 'users-login'
|
|
```
|
|
|
|
|
|
### Configurations in your urls.py
|
|
and add the following line to the list ```urlpatterns```:
|
|
```
|
|
path('users/', include('users.urls')),
|
|
```
|
|
|
|
### Parameter
|
|
All parameters can be added in the django ```settings.py``` or in a ```config.py``` in the root django folder. The definitions in the ```config.py``` will be used before the definitions in ```settings.py```.
|
|
|
|
#### USERS_SELF_REGISTRATION
|
|
This parameter can be ```True``` or ```False```. It enables or disables the self registration.
|
|
|
|
#### USERS_PASSWORD_RECOVERY
|
|
This parameter can be ```True``` or ```False```. It enables or disables the password recovery.
|
|
|
|
#### USERS_MAIL_VALIDATION
|
|
This parameter can be ```True``` or ```False```. It enables or disables the mail validation after self registration.
|
|
|
|
#### USERS_ADMIN_ACTIVATION
|
|
This parameter can be ```True``` or ```False```. It enables or disables the activation by an admin after mail validation.
|
|
|
|
#### USERS_PROFILE_ADDITIONS
|
|
With the USER_PROFILE_ADDITIONS, you can define additional profile parameters for a user. You need to define a model:
|
|
```
|
|
# USERPROFILE Model
|
|
#
|
|
class YourUserProfile(models.Model):
|
|
user = models.OneToOneField(User, unique=True, on_delete=models.CASCADE)
|
|
your_parameter = models.IntegerField(default=10)
|
|
```
|
|
and a form (called with only one parameter ```request```):
|
|
```
|
|
class YourUserProfileForm(forms.ModelForm):
|
|
class Meta:
|
|
model = YourUserProfile
|
|
fields = ['your_parameter', ]
|
|
def __init__(self, request):
|
|
if request.POST:
|
|
super().__init__(data=request.POST, instance=get_pattuserprofile(request.user))
|
|
else:
|
|
super().__init__(instance=get_pattuserprofile(request.user))
|
|
```
|
|
The USER_PROFILE_ADDITIONS is a dictionary where the key is the Heading and the value is the Form to be used. It shall be defined in ```settings.py``` like this:
|
|
```
|
|
USERS_PROFILE_ADDITIONS = {"Your Profile": 'your.forms.YourUserProfileForm'}
|
|
|
|
```
|
|
|
|
## Usage
|
|
### Actionabr
|
|
You might want to add the user actions by calling ```users.context.menubar(bar, request)``` with ```bar``` as menubar. See theme dosumentation for more details.
|