reinit
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.5 on 2016-09-25 05:30
|
||||
# Generated by Django 1.9.12 on 2017-01-23 07:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import account.models
|
||||
@@ -24,19 +24,17 @@ class Migration(migrations.Migration):
|
||||
('password', models.CharField(max_length=128, verbose_name='password')),
|
||||
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
|
||||
('username', models.CharField(max_length=30, unique=True)),
|
||||
('real_name', models.CharField(blank=True, max_length=30, null=True)),
|
||||
('email', models.EmailField(blank=True, max_length=254, null=True)),
|
||||
('real_name', models.CharField(max_length=30, null=True)),
|
||||
('email', models.EmailField(max_length=254, null=True)),
|
||||
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
|
||||
('admin_type', models.IntegerField(default=0)),
|
||||
('admin_extra_permission', jsonfield.fields.JSONField(default=[])),
|
||||
('problems_status', jsonfield.fields.JSONField(default={})),
|
||||
('reset_password_token', models.CharField(blank=True, max_length=40, null=True)),
|
||||
('reset_password_token_create_time', models.DateTimeField(blank=True, null=True)),
|
||||
('auth_token', models.CharField(blank=True, max_length=40, null=True)),
|
||||
('admin_type', models.CharField(default='regular_user', max_length=24)),
|
||||
('reset_password_token', models.CharField(max_length=40, null=True)),
|
||||
('reset_password_token_expire_time', models.DateTimeField(null=True)),
|
||||
('auth_token', models.CharField(max_length=40, null=True)),
|
||||
('two_factor_auth', models.BooleanField(default=False)),
|
||||
('tfa_token', models.CharField(blank=True, max_length=40, null=True)),
|
||||
('tfa_token', models.CharField(max_length=40, null=True)),
|
||||
('open_api', models.BooleanField(default=False)),
|
||||
('open_api_appkey', models.CharField(blank=True, max_length=35, null=True)),
|
||||
('open_api_appkey', models.CharField(max_length=35, null=True)),
|
||||
('is_disabled', models.BooleanField(default=False)),
|
||||
],
|
||||
options={
|
||||
@@ -50,17 +48,18 @@ class Migration(migrations.Migration):
|
||||
name='UserProfile',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('problems_status', jsonfield.fields.JSONField(default={})),
|
||||
('avatar', models.CharField(default=account.models._random_avatar, max_length=50)),
|
||||
('blog', models.URLField(blank=True, null=True)),
|
||||
('mood', models.CharField(blank=True, max_length=200, null=True)),
|
||||
('hduoj_username', models.CharField(blank=True, max_length=30, null=True)),
|
||||
('bestcoder_username', models.CharField(blank=True, max_length=30, null=True)),
|
||||
('codeforces_username', models.CharField(blank=True, max_length=30, null=True)),
|
||||
('accepted_problem_number', models.IntegerField(default=0)),
|
||||
('submission_number', models.IntegerField(default=0)),
|
||||
('phone_number', models.CharField(blank=True, max_length=15, null=True)),
|
||||
('school', models.CharField(blank=True, max_length=200, null=True)),
|
||||
('major', models.CharField(blank=True, max_length=200, null=True)),
|
||||
('student_id', models.CharField(blank=True, max_length=15, null=True)),
|
||||
('time_zone', models.CharField(blank=True, max_length=32, null=True)),
|
||||
('language', models.CharField(blank=True, max_length=32, null=True)),
|
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.5 on 2016-09-25 05:37
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('account', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='real_name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='userprofile',
|
||||
name='bestcoder_username',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='userprofile',
|
||||
name='codeforces_username',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='userprofile',
|
||||
name='hduoj_username',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='real_name',
|
||||
field=models.CharField(blank=True, max_length=30, null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,24 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.5 on 2016-09-25 06:02
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('account', '0002_auto_20160925_1337'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='userprofile',
|
||||
name='real_name',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='real_name',
|
||||
field=models.CharField(blank=True, max_length=30, null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,65 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.5 on 2016-09-25 08:49
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('account', '0003_auto_20160925_1402'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='language',
|
||||
field=models.CharField(blank=True, max_length=32, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='major',
|
||||
field=models.CharField(blank=True, max_length=200, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='time_zone',
|
||||
field=models.CharField(blank=True, max_length=32, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='auth_token',
|
||||
field=models.CharField(max_length=40, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='email',
|
||||
field=models.EmailField(max_length=254, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='open_api_appkey',
|
||||
field=models.CharField(max_length=35, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='real_name',
|
||||
field=models.CharField(max_length=30, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='reset_password_token',
|
||||
field=models.CharField(max_length=40, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='reset_password_token_create_time',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='tfa_token',
|
||||
field=models.CharField(max_length=40, null=True),
|
||||
),
|
||||
]
|
||||
@@ -1,39 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.5 on 2016-10-29 14:55
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import jsonfield.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('account', '0004_auto_20160925_1649'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='user',
|
||||
old_name='reset_password_token_create_time',
|
||||
new_name='reset_password_token_expire_time',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='admin_extra_permission',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='problems_status',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='problems_status',
|
||||
field=jsonfield.fields.JSONField(default={}),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='admin_type',
|
||||
field=models.CharField(default='regular_user', max_length=24),
|
||||
),
|
||||
]
|
||||
@@ -39,7 +39,7 @@ class User(AbstractBaseUser):
|
||||
open_api_appkey = models.CharField(max_length=35, null=True)
|
||||
is_disabled = models.BooleanField(default=False)
|
||||
|
||||
USERNAME_FIELD = 'username'
|
||||
USERNAME_FIELD = "username"
|
||||
REQUIRED_FIELDS = []
|
||||
|
||||
objects = UserManager()
|
||||
|
||||
@@ -84,12 +84,6 @@ class UserAdminAPI(APIView):
|
||||
|
||||
user = User.objects.all().order_by("-create_time")
|
||||
|
||||
admin_type = request.GET.get("admin_type", None)
|
||||
if admin_type:
|
||||
try:
|
||||
user = user.filter(admin_type__gte=int(admin_type))
|
||||
except ValueError:
|
||||
return self.error(_("Invalid parameter"))
|
||||
keyword = request.GET.get("keyword", None)
|
||||
if keyword:
|
||||
user = user.filter(Q(username__contains=keyword) |
|
||||
|
||||
@@ -2,9 +2,10 @@ from django.contrib import auth
|
||||
from django.core.exceptions import MultipleObjectsReturned
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from otpauth import OtpAuth
|
||||
|
||||
from utils.api import APIView, validate_serializer
|
||||
from utils.captcha import Captcha
|
||||
from utils.otp_auth import OtpAuth
|
||||
from ..decorators import login_required
|
||||
from ..models import User, UserProfile
|
||||
from ..serializers import (UserLoginSerializer, UserRegisterSerializer,
|
||||
|
||||
Reference in New Issue
Block a user