parameciofm/paramecio/modules/admin2/models/admin.py

95 lines
2.9 KiB
Python

#!/usr/bin/env python3
from paramecio.libraries.i18n import I18n
from paramecio.libraries.db.webmodel import WebModel
#from paramecio.libraries.db.usermodel import UserModel
from paramecio.libraries.db import corefields
from paramecio.libraries.db.extrafields.emailfield import EmailField
from paramecio.libraries.db.extrafields.passwordfield import PasswordField
from paramecio.libraries.db.extrafields.langfield import LangField
from paramecio.libraries.db.extrafields.ipfield import IpField
from paramecio.libraries.db.extrafields.datetimefield import DateTimeField
from paramecio.libraries.db.usermodel import UserModel
class ModuleField(corefields.CharField):
def show_formatted(self, value):
return I18n.lang('admin2', value, value)
class PrivilegesField2(corefields.IntegerField):
def show_formatted(self, value):
value=int(value)
if value==0:
return _('Without privileges')
elif value==1:
return _('Selected privileges')
elif value==2:
return _('Administrator')
class UserAdmin2(UserModel):
#def create_fields(self):
def __init__(self, connection=None):
super().__init__(connection)
# I can change other fields here, how the name.
self.register(corefields.CharField('username'))
self.fields['username'].required=True
self.fields['username'].label=_('Username')
self.register(PasswordField('password'))
self.fields['password'].required=True
self.register(EmailField('email'))
self.fields['email'].required=True
self.register(corefields.CharField('token_recovery'))
self.register(corefields.CharField('token_login'))
self.register(PasswordField('token_auth'))
self.register(PasswordField('token_key'))
self.register(PrivilegesField2('privileges'))
self.register(LangField('lang', 20))
self.register(corefields.BooleanField('disabled'))
self.register(corefields.BooleanField('double_auth'))
self.register(corefields.BooleanField('dark_theme'))
#self.register(corefields.IntegerField('num_tries', 1))
self.register(DateTimeField('last_login'))
class LoginTries2(WebModel):
def __init__(self, connection=None):
super().__init__(connection)
self.register(IpField('ip'))
self.register(corefields.IntegerField('num_tries', 1))
self.register(DateTimeField('last_login'))
class PrivilegesModule2(WebModel):
def __init__(self, connection=None):
super().__init__(connection)
self.register(corefields.ForeignKeyField('user_id', UserAdmin2(connection), 11, False, 'id', 'username', select_fields=[]), True)
self.register(ModuleField('module'), True)