2021-07-09 11:11:21 -04:00
from django . conf import settings
2024-01-22 13:15:43 -05:00
import django . contrib . auth . models
2021-07-09 11:11:21 -04:00
import django . contrib . postgres . fields
import django . core . validators
from django . db import migrations , models
import django . db . models . deletion
2024-02-05 10:24:03 -08:00
import users . models
2021-07-09 11:11:21 -04:00
class Migration ( migrations . Migration ) :
initial = True
dependencies = [
2024-01-19 13:55:22 -05:00
migrations . swappable_dependency ( settings . AUTH_USER_MODEL ) ,
2024-01-22 13:15:43 -05:00
( ' contenttypes ' , ' 0002_remove_content_type_name ' ) ,
2021-07-09 11:11:21 -04:00
( ' auth ' , ' 0012_alter_user_first_name_max_length ' ) ,
]
2021-07-09 11:49:55 -04:00
replaces = [
( ' users ' , ' 0001_api_tokens ' ) ,
( ' users ' , ' 0002_unicode_literals ' ) ,
( ' users ' , ' 0003_token_permissions ' ) ,
( ' users ' , ' 0004_standardize_description ' ) ,
( ' users ' , ' 0005_userconfig ' ) ,
( ' users ' , ' 0006_create_userconfigs ' ) ,
( ' users ' , ' 0007_proxy_group_user ' ) ,
( ' users ' , ' 0008_objectpermission ' ) ,
( ' users ' , ' 0009_replicate_permissions ' ) ,
( ' users ' , ' 0010_update_jsonfield ' ) ,
( ' users ' , ' 0011_standardize_models ' ) ,
]
2021-07-09 11:11:21 -04:00
operations = [
2024-02-05 10:24:03 -08:00
migrations . CreateModel (
name = ' User ' ,
fields = [
( ' id ' , models . BigAutoField ( auto_created = True , primary_key = True , serialize = False ) ) ,
( ' password ' , models . CharField ( max_length = 128 ) ) ,
( ' last_login ' , models . DateTimeField ( blank = True , null = True ) ) ,
( ' is_superuser ' , models . BooleanField ( default = False ) ) ,
( ' username ' , models . CharField ( error_messages = { ' unique ' : ' A user with that username already exists. ' } , max_length = 150 , unique = True , validators = [ django . contrib . auth . validators . UnicodeUsernameValidator ( ) ] ) ) ,
( ' first_name ' , models . CharField ( blank = True , max_length = 150 ) ) ,
( ' last_name ' , models . CharField ( blank = True , max_length = 150 ) ) ,
( ' email ' , models . EmailField ( blank = True , max_length = 254 ) ) ,
( ' is_staff ' , models . BooleanField ( default = False ) ) ,
( ' is_active ' , models . BooleanField ( default = True ) ) ,
( ' date_joined ' , models . DateTimeField ( default = django . utils . timezone . now ) ) ,
( ' groups ' , models . ManyToManyField ( blank = True , related_name = ' user_set ' , related_query_name = ' user ' , to = ' auth.group ' ) ) ,
( ' user_permissions ' , models . ManyToManyField ( blank = True , related_name = ' user_set ' , related_query_name = ' user ' , to = ' auth.permission ' ) ) ,
] ,
options = {
' verbose_name ' : ' user ' ,
' verbose_name_plural ' : ' users ' ,
' db_table ' : ' auth_user ' ,
' ordering ' : ( ' username ' , ) ,
} ,
managers = [
( ' objects ' , users . models . UserManager ( ) ) ,
] ,
) ,
2021-07-09 11:11:21 -04:00
migrations . CreateModel (
name = ' UserConfig ' ,
fields = [
2024-01-22 13:15:43 -05:00
( ' id ' , models . AutoField ( auto_created = True , primary_key = True , serialize = False ) ) ,
2021-07-09 11:11:21 -04:00
( ' data ' , models . JSONField ( default = dict ) ) ,
( ' user ' , models . OneToOneField ( on_delete = django . db . models . deletion . CASCADE , related_name = ' config ' , to = settings . AUTH_USER_MODEL ) ) ,
] ,
options = {
2024-01-22 13:15:43 -05:00
' verbose_name ' : ' User Preferences ' ,
' verbose_name_plural ' : ' User Preferences ' ,
2021-07-09 11:11:21 -04:00
' ordering ' : [ ' user ' ] ,
} ,
) ,
migrations . CreateModel (
name = ' Token ' ,
fields = [
2024-01-22 13:15:43 -05:00
( ' id ' , models . BigAutoField ( primary_key = True , serialize = False ) ) ,
2021-07-09 11:11:21 -04:00
( ' created ' , models . DateTimeField ( auto_now_add = True ) ) ,
( ' expires ' , models . DateTimeField ( blank = True , null = True ) ) ,
( ' key ' , models . CharField ( max_length = 40 , unique = True , validators = [ django . core . validators . MinLengthValidator ( 40 ) ] ) ) ,
( ' write_enabled ' , models . BooleanField ( default = True ) ) ,
( ' description ' , models . CharField ( blank = True , max_length = 200 ) ) ,
( ' user ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' tokens ' , to = settings . AUTH_USER_MODEL ) ) ,
] ,
) ,
migrations . CreateModel (
name = ' ObjectPermission ' ,
fields = [
2024-01-22 13:15:43 -05:00
( ' id ' , models . BigAutoField ( primary_key = True , serialize = False ) ) ,
2021-07-09 11:11:21 -04:00
( ' name ' , models . CharField ( max_length = 100 ) ) ,
( ' description ' , models . CharField ( blank = True , max_length = 200 ) ) ,
( ' enabled ' , models . BooleanField ( default = True ) ) ,
( ' actions ' , django . contrib . postgres . fields . ArrayField ( base_field = models . CharField ( max_length = 30 ) , size = None ) ) ,
( ' constraints ' , models . JSONField ( blank = True , null = True ) ) ,
2024-01-22 13:15:43 -05:00
( ' groups ' , models . ManyToManyField ( blank = True , related_name = ' object_permissions ' , to = ' auth.Group ' ) ) ,
( ' object_types ' , models . ManyToManyField ( limit_choices_to = models . Q ( models . Q ( models . Q ( ( ' app_label__in ' , [ ' account ' , ' admin ' , ' auth ' , ' contenttypes ' , ' sessions ' , ' taggit ' , ' users ' ] ) , _negated = True ) , models . Q ( ( ' app_label ' , ' auth ' ) , ( ' model__in ' , [ ' group ' , ' user ' ] ) ) , models . Q ( ( ' app_label ' , ' users ' ) , ( ' model__in ' , [ ' objectpermission ' , ' token ' ] ) ) , _connector = ' OR ' ) ) , related_name = ' object_permissions ' , to = ' contenttypes.ContentType ' ) ) ,
2021-07-09 11:11:21 -04:00
( ' users ' , models . ManyToManyField ( blank = True , related_name = ' object_permissions ' , to = settings . AUTH_USER_MODEL ) ) ,
] ,
options = {
' verbose_name ' : ' permission ' ,
' ordering ' : [ ' name ' ] ,
} ,
) ,
]