SMART-29 user app and django and implement UserManager and User class for further login logic
This commit is contained in:
parent
1956a64480
commit
2cee353794
8
.idea/.gitignore
vendored
Normal file
8
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
15
.idea/SmartPicasso.iml
Normal file
15
.idea/SmartPicasso.iml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="Python" name="Python">
|
||||
<configuration sdkName="Python 3.8" />
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Python 3.8 interpreter library" level="application" />
|
||||
</component>
|
||||
</module>
|
6
.idea/misc.xml
Normal file
6
.idea/misc.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/SmartPicasso.iml" filepath="$PROJECT_DIR$/.idea/SmartPicasso.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
0
rest-app/smartpicasso/app/user/__init__.py
Normal file
0
rest-app/smartpicasso/app/user/__init__.py
Normal file
3
rest-app/smartpicasso/app/user/admin.py
Normal file
3
rest-app/smartpicasso/app/user/admin.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
5
rest-app/smartpicasso/app/user/apps.py
Normal file
5
rest-app/smartpicasso/app/user/apps.py
Normal file
@ -0,0 +1,5 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class UserConfig(AppConfig):
|
||||
name = 'user'
|
72
rest-app/smartpicasso/app/user/models.py
Normal file
72
rest-app/smartpicasso/app/user/models.py
Normal file
@ -0,0 +1,72 @@
|
||||
"""
|
||||
@author p.dolata
|
||||
"""
|
||||
|
||||
import uuid
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
|
||||
|
||||
|
||||
class UserManager(BaseUserManager):
|
||||
"""
|
||||
Manager for custom user model
|
||||
"""
|
||||
|
||||
def create_user(self, email, password=None):
|
||||
"""
|
||||
Create and return `User` with an email, username and password
|
||||
:param email: email of user
|
||||
:param password: password of user
|
||||
:return: model of new user
|
||||
"""
|
||||
if not email:
|
||||
raise ValueError('Users must have an email address')
|
||||
user = self.model(email=self.normalize_email(email))
|
||||
user.set_password(password)
|
||||
user.save(using=self._db)
|
||||
|
||||
return user
|
||||
|
||||
def create_superuser(self, email, password):
|
||||
"""
|
||||
Create and return a `User` with superuser (admin) permissions
|
||||
:param email: email of superuser
|
||||
:param password: password of superuser
|
||||
:return: model of new superuser
|
||||
"""
|
||||
if password is None:
|
||||
raise TypeError('Superusers must have a password')
|
||||
user = self.create_user(email, password)
|
||||
user.is_superuser = True
|
||||
user.is_staff = True
|
||||
user.save()
|
||||
|
||||
return user
|
||||
|
||||
|
||||
class User(AbstractBaseUser):
|
||||
"""
|
||||
Model of user
|
||||
"""
|
||||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||
email = models.EmailField(
|
||||
verbose_name='email address',
|
||||
max_length=255,
|
||||
unique=True
|
||||
)
|
||||
is_active = models.BooleanField(default=True)
|
||||
is_staff = models.BooleanField(default=False)
|
||||
is_superuser = models.BooleanField(default=False)
|
||||
USERNAME_FIELD = 'email'
|
||||
REQUIRED_FIELDS = []
|
||||
|
||||
objects = UserManager()
|
||||
|
||||
def __str__(self):
|
||||
return self.email
|
||||
|
||||
class Meta:
|
||||
"""
|
||||
Class to set table name in database
|
||||
"""
|
||||
db_table = 'login'
|
3
rest-app/smartpicasso/app/user/tests.py
Normal file
3
rest-app/smartpicasso/app/user/tests.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
3
rest-app/smartpicasso/app/user/views.py
Normal file
3
rest-app/smartpicasso/app/user/views.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
Loading…
Reference in New Issue
Block a user