mirror of https://github.com/jumpserver/jumpserver
update user model for create application user
parent
589b6d7cfe
commit
875aaa0029
|
@ -7,6 +7,7 @@ from collections import OrderedDict
|
||||||
from django.contrib.auth.hashers import make_password
|
from django.contrib.auth.hashers import make_password
|
||||||
from django.contrib.auth.models import AbstractUser
|
from django.contrib.auth.models import AbstractUser
|
||||||
from django.core import signing
|
from django.core import signing
|
||||||
|
from django.conf import settings
|
||||||
from django.db import models, IntegrityError
|
from django.db import models, IntegrityError
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
@ -14,7 +15,7 @@ from django.shortcuts import reverse
|
||||||
from rest_framework.authtoken.models import Token
|
from rest_framework.authtoken.models import Token
|
||||||
|
|
||||||
from common.utils import signer, date_expired_default
|
from common.utils import signer, date_expired_default
|
||||||
from . import UserGroup
|
from . import UserGroup, AccessKey
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['User']
|
__all__ = ['User']
|
||||||
|
@ -24,7 +25,7 @@ class User(AbstractUser):
|
||||||
ROLE_CHOICES = (
|
ROLE_CHOICES = (
|
||||||
('Admin', _('Administrator')),
|
('Admin', _('Administrator')),
|
||||||
('User', _('User')),
|
('User', _('User')),
|
||||||
('APP', _('Application'))
|
('App', _('Application'))
|
||||||
)
|
)
|
||||||
|
|
||||||
username = models.CharField(max_length=20, unique=True, verbose_name=_('Username'))
|
username = models.CharField(max_length=20, unique=True, verbose_name=_('Username'))
|
||||||
|
@ -45,6 +46,8 @@ class User(AbstractUser):
|
||||||
verbose_name=_('Date expired'))
|
verbose_name=_('Date expired'))
|
||||||
created_by = models.CharField(max_length=30, default='', verbose_name=_('Created by'))
|
created_by = models.CharField(max_length=30, default='', verbose_name=_('Created by'))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def password_raw(self):
|
def password_raw(self):
|
||||||
raise AttributeError('Password raw is not a readable attribute')
|
raise AttributeError('Password raw is not a readable attribute')
|
||||||
|
@ -173,6 +176,15 @@ class User(AbstractUser):
|
||||||
'date_expired': self.date_expired.strftime('%Y-%m-%d %H:%M:%S')
|
'date_expired': self.date_expired.strftime('%Y-%m-%d %H:%M:%S')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def create_app_user(cls, name, comment):
|
||||||
|
domain_name = settings.DOMAIN_NAME or 'jumpserver.org'
|
||||||
|
app = cls.objects.create(username=name, name=name, email='%s@%s' % (name, domain_name),
|
||||||
|
role='App', enable_otp=False, comment=comment, is_first_login=False,
|
||||||
|
created_by='System')
|
||||||
|
AccessKey.object.create(user=app)
|
||||||
|
return app
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def validate_reset_token(cls, token):
|
def validate_reset_token(cls, token):
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -26,6 +26,9 @@ class Config:
|
||||||
# HTTP_PROTOCOL://HOST[:PORT]
|
# HTTP_PROTOCOL://HOST[:PORT]
|
||||||
SITE_URL = 'http://localhost'
|
SITE_URL = 'http://localhost'
|
||||||
|
|
||||||
|
# Domain name, If set app email will set as it
|
||||||
|
DOMAIN_NAME = 'jumpserver.org'
|
||||||
|
|
||||||
# Django security setting, if your disable debug model, you should setting that
|
# Django security setting, if your disable debug model, you should setting that
|
||||||
ALLOWED_HOSTS = ['*']
|
ALLOWED_HOSTS = ['*']
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue