mirror of
https://github.com/RobbieHan/sandboxMP.git
synced 2026-04-29 05:11:21 +08:00
network_asset
This commit is contained in:
@@ -1,112 +0,0 @@
|
||||
# Generated by Django 2.1.2 on 2018-10-17 15:09
|
||||
|
||||
from django.conf import settings
|
||||
import django.contrib.auth.models
|
||||
import django.contrib.auth.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('auth', '0009_alter_user_last_name_max_length'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='UserProfile',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('password', models.CharField(max_length=128, verbose_name='password')),
|
||||
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
|
||||
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
|
||||
('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
|
||||
('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
|
||||
('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
|
||||
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
|
||||
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
|
||||
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
|
||||
('name', models.CharField(default='', max_length=20, verbose_name='姓名')),
|
||||
('birthday', models.DateField(blank=True, null=True, verbose_name='出生日期')),
|
||||
('gender', models.CharField(choices=[('male', '男'), ('female', '女')], default='male', max_length=10, verbose_name='性别')),
|
||||
('mobile', models.CharField(default='', max_length=11, verbose_name='手机号码')),
|
||||
('email', models.EmailField(max_length=50, verbose_name='邮箱')),
|
||||
('image', models.ImageField(blank=True, default='image/default.jpg', null=True, upload_to='image/%Y/%m')),
|
||||
('post', models.CharField(blank=True, max_length=50, null=True, verbose_name='职位')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '用户信息',
|
||||
'verbose_name_plural': '用户信息',
|
||||
'ordering': ['id'],
|
||||
},
|
||||
managers=[
|
||||
('objects', django.contrib.auth.models.UserManager()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Menu',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=30, unique=True, verbose_name='菜单名')),
|
||||
('icon', models.CharField(blank=True, max_length=50, null=True, verbose_name='图标')),
|
||||
('code', models.CharField(blank=True, max_length=50, null=True, verbose_name='编码')),
|
||||
('url', models.CharField(blank=True, max_length=128, null=True, unique=True)),
|
||||
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.Menu', verbose_name='父菜单')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '菜单',
|
||||
'verbose_name_plural': '菜单',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Role',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=32, unique=True, verbose_name='角色')),
|
||||
('desc', models.CharField(blank=True, max_length=50, null=True, verbose_name='描述')),
|
||||
('permissions', models.ManyToManyField(blank=True, to='system.Menu', verbose_name='URL授权')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Structure',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=60, verbose_name='名称')),
|
||||
('type', models.CharField(choices=[('unit', '单位'), ('department', '部门')], default='department', max_length=20, verbose_name='类型')),
|
||||
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.Structure', verbose_name='父类架构')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '组织架构',
|
||||
'verbose_name_plural': '组织架构',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='department',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.Structure', verbose_name='部门'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='groups',
|
||||
field=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'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='roles',
|
||||
field=models.ManyToManyField(blank=True, to='system.Role', verbose_name='角色'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='superior',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='上级主管'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='user_permissions',
|
||||
field=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'),
|
||||
),
|
||||
]
|
||||
@@ -1,22 +0,0 @@
|
||||
# Generated by Django 2.1.2 on 2018-11-15 21:24
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='menu',
|
||||
options={'ordering': ['number'], 'verbose_name': '菜单', 'verbose_name_plural': '菜单'},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='menu',
|
||||
name='number',
|
||||
field=models.FloatField(blank=True, null=True, verbose_name='编号'),
|
||||
),
|
||||
]
|
||||
Binary file not shown.
Binary file not shown.
@@ -35,4 +35,6 @@ urlpatterns = [
|
||||
path('rbac/role/role2user/', views_role.Role2UserView.as_view(), name="rbac-role-role2user"),
|
||||
path('rbac/role/role2menu/', views_role.Role2MenuView.as_view(), name="rbac-role-role2menu"),
|
||||
path('rbac/role/role2menu_list/', views_role.Role2MenuListView.as_view(), name="rbac-role-role2menu_list"),
|
||||
|
||||
path('personal_password_change/', views_user.PersonalPasswordChangeView.as_view(), name='personal_password_change')
|
||||
]
|
||||
|
||||
@@ -218,4 +218,35 @@ class UserDisableView(LoginRequiredMixin, View):
|
||||
queryset = User.objects.extra(where=["id IN(" + id_nums + ")"])
|
||||
queryset.filter(is_active=True).update(is_active=False)
|
||||
ret = {'result': 'True'}
|
||||
return HttpResponse(json.dumps(ret), content_type='application/json')
|
||||
|
||||
# 用户修改密码临时接口
|
||||
class PersonalPasswordChangeView(LoginRequiredMixin, View):
|
||||
"""
|
||||
登陆用户修改个人密码
|
||||
"""
|
||||
|
||||
def get(self, request):
|
||||
ret = dict()
|
||||
user = get_object_or_404(User, pk=int(request.user.id))
|
||||
ret['user'] = user
|
||||
return render(request, 'system/users/personal_passwd_change.html', ret)
|
||||
|
||||
def post(self, request):
|
||||
|
||||
user = get_object_or_404(User, pk=int(request.user.id))
|
||||
form = PasswordChangeForm(request.POST)
|
||||
if form.is_valid():
|
||||
new_password = request.POST.get('password')
|
||||
user.set_password(new_password)
|
||||
user.save()
|
||||
ret = {'status': 'success'}
|
||||
else:
|
||||
pattern = '<li>.*?<ul class=.*?><li>(.*?)</li>'
|
||||
errors = str(form.errors)
|
||||
passwd_change_form_errors = re.findall(pattern, errors)
|
||||
ret = {
|
||||
'status': 'fail',
|
||||
'password_change_form_errors': passwd_change_form_errors[0]
|
||||
}
|
||||
return HttpResponse(json.dumps(ret), content_type='application/json')
|
||||
Reference in New Issue
Block a user