2020-12-29 13:49:48 +00:00
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django . db import migrations , models
import django . db . models . deletion
from django . conf import settings
import django . contrib . auth . models
import django . core . validators
import re2o . mixins
import re2o . field_permissions
import users . models
class Migration ( migrations . Migration ) :
2020-12-30 16:08:42 +00:00
dependencies = [ ( ' auth ' , ' 0008_alter_user_username_max_length ' ) ]
initial = True
2020-12-29 13:49:48 +00:00
operations = [
migrations . CreateModel (
name = " User " ,
bases = (
re2o . mixins . RevMixin ,
re2o . field_permissions . FieldPermissionModelMixin ,
django . contrib . auth . models . AbstractBaseUser ,
django . contrib . auth . models . PermissionsMixin ,
re2o . mixins . AclMixin ,
) ,
fields = [
(
" id " ,
models . AutoField (
verbose_name = " ID " ,
serialize = False ,
auto_created = True ,
primary_key = True ,
) ,
) ,
( " surname " , models . CharField ( max_length = 255 ) ) ,
(
" pseudo " ,
models . CharField (
max_length = 32 ,
unique = True ,
help_text = " Must only contain letters, numerals or dashes. " ,
validators = [ users . models . linux_user_validator ] ,
) ,
) ,
(
" email " ,
models . EmailField (
blank = True ,
default = " " ,
help_text = " External email address allowing us to contact you. " ,
) ,
) ,
(
" local_email_redirect " ,
models . BooleanField (
default = False ,
help_text = " Enable redirection of the local email messages to the main email address. " ,
) ,
) ,
(
" local_email_enabled " ,
models . BooleanField (
default = False , help_text = " Enable the local email account. "
) ,
) ,
(
" comment " ,
models . CharField (
help_text = " Comment, school year. " , max_length = 255 , blank = True
) ,
) ,
( " pwd_ntlm " , models . CharField ( max_length = 255 ) ) ,
(
" state " ,
models . IntegerField (
choices = (
( 0 , " Active " ) ,
( 1 , " Disabled " ) ,
( 2 , " Archived " ) ,
( 3 , " Not yet active " ) ,
( 4 , " Fully archived " ) ,
) ,
default = 3 ,
help_text = " Account state. " ,
) ,
) ,
(
" email_state " ,
models . IntegerField (
choices = (
( 0 , " Confirmed " ) ,
( 1 , " Not confirmed " ) ,
( 2 , " Waiting for email confirmation " ) ,
) ,
default = 2 ,
) ,
) ,
( " registered " , models . DateTimeField ( auto_now_add = True ) ) ,
( " telephone " , models . CharField ( max_length = 15 , blank = True , null = True ) ) ,
(
" uid_number " ,
models . PositiveIntegerField (
default = users . models . get_fresh_user_uid , unique = True
) ,
) ,
(
" legacy_uid " ,
models . PositiveIntegerField (
unique = True ,
blank = True ,
null = True ,
help_text = " Optionnal legacy uid, for import and transition purpose " ,
) ,
) ,
(
" shortcuts_enabled " ,
models . BooleanField (
verbose_name = " enable shortcuts on Re2o website " , default = True
) ,
) ,
( " email_change_date " , models . DateTimeField ( auto_now_add = True ) ) ,
( " theme " , models . CharField ( max_length = 255 , default = " default.css " ) ) ,
2020-12-30 16:08:42 +00:00
(
" is_superuser " ,
models . BooleanField (
default = False ,
help_text = " Designates that this user has all permissions without explicitly assigning them. " ,
verbose_name = " superuser status " ,
) ,
) ,
(
" last_login " ,
models . DateTimeField (
blank = True , null = True , verbose_name = " last login "
) ,
) ,
(
" password " ,
models . CharField (
max_length = 128 , verbose_name = " password "
) ,
) ,
( " groups " , models . ManyToManyField ( blank = True , help_text = ' The groups this user belongs to. A user will get all permissions granted to each of their groups. ' , related_name = ' user_set ' , related_query_name = ' user ' , to = ' auth.Group ' , verbose_name = ' groups ' ) ) ,
( " user_permissions " , models . ManyToManyField ( blank = True , help_text = ' Specific permissions for this user. ' , related_name = ' user_set ' , related_query_name = ' user ' , to = ' auth.Permission ' , verbose_name = ' user permissions ' ) )
2020-12-29 13:49:48 +00:00
] ,
options = {
" permissions " : (
( " change_user_password " , " Can change the password of a user " ) ,
( " change_user_state " , " Can edit the state of a user " ) ,
( " change_user_force " , " Can force the move " ) ,
( " change_user_shell " , " Can edit the shell of a user " ) ,
( " change_user_pseudo " , " Can edit the pseudo of a user " ) ,
(
" change_user_groups " ,
" Can edit the groups of rights of a user (critical permission) " ,
) ,
(
" change_all_users " ,
" Can edit all users, including those with rights " ,
) ,
( " view_user " , " Can view a user object " ) ,
) ,
" verbose_name " : " user (member or club) " ,
" verbose_name_plural " : " users (members or clubs) " ,
} ,
) ,
migrations . CreateModel (
name = " Adherent " ,
fields = [
(
" user_ptr " ,
models . OneToOneField (
auto_created = True ,
on_delete = django . db . models . deletion . CASCADE ,
parent_link = True ,
primary_key = True ,
serialize = False ,
to = settings . AUTH_USER_MODEL ,
) ,
) ,
( " name " , models . CharField ( max_length = 255 ) ) ,
(
" gpg_fingerprint " ,
models . CharField ( max_length = 49 , blank = True , null = True ) ,
) ,
] ,
options = { " verbose_name " : " member " , " verbose_name_plural " : " members " } ,
) ,
migrations . CreateModel (
name = " Club " ,
fields = [
(
" user_ptr " ,
models . OneToOneField (
auto_created = True ,
on_delete = django . db . models . deletion . CASCADE ,
parent_link = True ,
primary_key = True ,
serialize = False ,
to = settings . AUTH_USER_MODEL ,
) ,
) ,
( " mailing " , models . BooleanField ( default = False ) ) ,
] ,
options = { " verbose_name " : " club " , " verbose_name_plural " : " clubs " } ,
) ,
migrations . CreateModel (
name = " ServiceUser " ,
bases = (
re2o . mixins . RevMixin ,
re2o . mixins . AclMixin ,
django . contrib . auth . models . AbstractBaseUser ,
) ,
fields = [
(
" id " ,
models . AutoField (
verbose_name = " ID " ,
serialize = False ,
auto_created = True ,
primary_key = True ,
) ,
) ,
(
" pseudo " ,
models . CharField (
max_length = 32 ,
unique = True ,
help_text = " Must only contain letters, numerals or dashes. " ,
validators = [ users . models . linux_user_validator ] ,
) ,
) ,
(
" access_group " ,
models . CharField (
choices = (
( " auth " , " auth " ) ,
( " readonly " , " readonly " ) ,
( " usermgmt " , " usermgmt " ) ,
) ,
default = " readonly " ,
max_length = 32 ,
) ,
) ,
(
" comment " ,
models . CharField ( help_text = " Comment. " , max_length = 255 , blank = True ) ,
) ,
2020-12-30 16:08:42 +00:00
(
" last_login " ,
models . DateTimeField (
blank = True , null = True , verbose_name = " last login "
) ,
) ,
(
" password " ,
models . CharField (
max_length = 128 , verbose_name = " password "
) ,
) ,
2020-12-29 13:49:48 +00:00
] ,
options = {
" permissions " : (
( " view_serviceuser " , " Can view a service user object " ) ,
) ,
" verbose_name " : " service user " ,
" verbose_name_plural " : " service users " ,
} ,
) ,
migrations . CreateModel (
name = " School " ,
bases = ( re2o . mixins . RevMixin , re2o . mixins . AclMixin , models . Model ) ,
fields = [
(
" id " ,
models . AutoField (
verbose_name = " ID " ,
serialize = False ,
auto_created = True ,
primary_key = True ,
) ,
) ,
( " name " , models . CharField ( max_length = 255 ) ) ,
] ,
options = {
" permissions " : ( ( " view_school " , " Can view a school object " ) , ) ,
" verbose_name " : " school " ,
" verbose_name_plural " : " schools " ,
} ,
) ,
migrations . CreateModel (
name = " ListRight " ,
bases = (
re2o . mixins . RevMixin ,
re2o . mixins . AclMixin ,
django . contrib . auth . models . Group ,
) ,
fields = [
(
2020-12-30 16:08:42 +00:00
" group_ptr " ,
2020-12-29 13:49:48 +00:00
models . OneToOneField (
parent_link = True ,
2020-12-30 16:08:42 +00:00
auto_created = True ,
2020-12-29 13:49:48 +00:00
primary_key = True ,
2020-12-30 16:08:42 +00:00
on_delete = django . db . models . deletion . CASCADE ,
2020-12-29 13:49:48 +00:00
serialize = False ,
to = " auth.Group " ,
) ,
) ,
(
" unix_name " ,
models . CharField (
max_length = 255 ,
unique = True ,
validators = [
django . core . validators . RegexValidator (
" ^[a-z]+$ " ,
message = (
" UNIX group names can only contain lower case letters. "
) ,
)
] ,
) ,
) ,
( " gid " , models . PositiveIntegerField ( unique = True , null = True ) ) ,
( " critical " , models . BooleanField ( default = False ) ) ,
(
" details " ,
models . CharField (
help_text = " Description. " , max_length = 255 , blank = True
) ,
) ,
] ,
options = {
" permissions " : (
( " view_listright " , " Can view a group of rights object " ) ,
) ,
" verbose_name " : " group of rights " ,
" verbose_name_plural " : " groups of rights " ,
} ,
) ,
migrations . CreateModel (
name = " ListShell " ,
bases = ( re2o . mixins . RevMixin , re2o . mixins . AclMixin , models . Model ) ,
fields = [
(
" id " ,
models . AutoField (
verbose_name = " ID " ,
serialize = False ,
auto_created = True ,
primary_key = True ,
) ,
) ,
( " shell " , models . CharField ( max_length = 255 , unique = True ) ) ,
] ,
options = {
" permissions " : ( ( " view_listshell " , " Can view a shell object " ) , ) ,
" verbose_name " : " shell " ,
" verbose_name_plural " : " shells " ,
} ,
) ,
migrations . CreateModel (
name = " Ban " ,
bases = ( re2o . mixins . RevMixin , re2o . mixins . AclMixin , models . Model ) ,
fields = [
(
" id " ,
models . AutoField (
verbose_name = " ID " ,
serialize = False ,
auto_created = True ,
primary_key = True ,
) ,
) ,
( " raison " , models . CharField ( max_length = 255 ) ) ,
( " date_start " , models . DateTimeField ( auto_now_add = True ) ) ,
( " date_end " , models . DateTimeField ( ) ) ,
(
" state " ,
models . IntegerField (
choices = (
( 0 , " HARD (no access) " ) ,
( 1 , " SOFT (local access only) " ) ,
( 2 , " RESTRICTED (speed limitation) " ) ,
) ,
default = 0 ,
) ,
) ,
] ,
options = {
" permissions " : ( ( " view_ban " , " Can view a ban object " ) , ) ,
" verbose_name " : " ban " ,
" verbose_name_plural " : " bans " ,
} ,
) ,
migrations . CreateModel (
name = " Whitelist " ,
bases = ( re2o . mixins . RevMixin , re2o . mixins . AclMixin , models . Model ) ,
fields = [
(
" id " ,
models . AutoField (
verbose_name = " ID " ,
serialize = False ,
auto_created = True ,
primary_key = True ,
) ,
) ,
( " raison " , models . CharField ( max_length = 255 ) ) ,
( " date_start " , models . DateTimeField ( auto_now_add = True ) ) ,
( " date_end " , models . DateTimeField ( ) ) ,
] ,
options = {
" permissions " : ( ( " view_whitelist " , " Can view a whitelist object " ) , ) ,
" verbose_name " : " whitelist (free of charge access) " ,
" verbose_name_plural " : " whitelists (free of charge access) " ,
} ,
) ,
migrations . CreateModel (
name = " Request " ,
bases = ( models . Model , ) ,
fields = [
(
" id " ,
models . AutoField (
verbose_name = " ID " ,
serialize = False ,
auto_created = True ,
primary_key = True ,
) ,
) ,
(
" type " ,
models . CharField (
max_length = 2 ,
choices = ( ( " PW " , " Password " ) , ( " EM " , " Email address " ) ) ,
) ,
) ,
( " token " , models . CharField ( max_length = 32 ) ) ,
( " email " , models . EmailField ( blank = True , null = True ) ) ,
( " created_at " , models . DateTimeField ( auto_now_add = True , editable = False ) ) ,
( " expires_at " , models . DateTimeField ( ) ) ,
] ,
) ,
migrations . CreateModel (
name = " EMailAddress " ,
bases = ( re2o . mixins . RevMixin , re2o . mixins . AclMixin , models . Model ) ,
fields = [
(
" id " ,
models . AutoField (
verbose_name = " ID " ,
serialize = False ,
auto_created = True ,
primary_key = True ,
) ,
) ,
(
" local_part " ,
models . CharField (
unique = True ,
max_length = 128 ,
help_text = " Local part of the email address. " ,
) ,
) ,
] ,
options = {
" permissions " : (
( " view_emailaddress " , " Can view a local email account object " ) ,
) ,
" verbose_name " : " local email account " ,
" verbose_name_plural " : " local email accounts " ,
} ,
) ,
]