23 lines
818 B
Python
23 lines
818 B
Python
from django.apps import apps
|
|
from django.contrib.auth import get_user_model
|
|
from django.contrib.auth.models import Group
|
|
|
|
|
|
class RoleMixin(object):
|
|
def create_user_for_role(self, role_name, password, first_name, last_name):
|
|
group = Group(name=role_name)
|
|
group.save()
|
|
|
|
user_model = get_user_model()
|
|
email = '{}@localhost'.format(role_name)
|
|
user_name = email
|
|
user = user_model.objects.create_user(username=user_name, password=password, email=user_name,
|
|
first_name=first_name, last_name=last_name)
|
|
user.groups.add(group)
|
|
|
|
setting_name = 'groups_{}'.format(role_name)
|
|
app_config = apps.get_app_config('dav_events')
|
|
setattr(app_config.settings, setting_name, [role_name])
|
|
|
|
return user
|