A api update

pull/22/head
雷二猛 2019-12-29 19:23:37 +08:00
parent 1a039f212a
commit a512fc236a
3 changed files with 48 additions and 1 deletions

View File

@ -12,6 +12,7 @@ class User(models.Model, ModelMixin):
access_token = models.CharField(max_length=32)
token_expired = models.IntegerField(null=True)
last_login = models.CharField(max_length=20)
role = models.ForeignKey('Role', on_delete=models.PROTECT, null=True)
created_at = models.CharField(max_length=20, default=human_datetime)
created_by = models.ForeignKey('User', models.PROTECT, related_name='+', null=True)
@ -35,3 +36,19 @@ class User(models.Model, ModelMixin):
class Meta:
db_table = 'users'
ordering = ('-id',)
class Role(models.Model, ModelMixin):
name = models.CharField(max_length=50)
desc = models.CharField(max_length=255, null=True)
permissions = models.TextField(null=True)
created_at = models.CharField(max_length=20, default=human_datetime)
created_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='+')
def __repr__(self):
return '<Role name=%r>' % self.name
class Meta:
db_table = 'roles'
ordering = ('-id',)

View File

@ -6,4 +6,5 @@ urlpatterns = [
url(r'^login/', login),
url(r'^logout/', logout),
url(r'^user/$', UserView.as_view()),
url(r'^role/$', RoleView.as_view()),
]

View File

@ -1,7 +1,7 @@
from django.core.cache import cache
from django.views.generic import View
from libs import JsonParser, Argument, human_datetime, json_response
from .models import User
from .models import User, Role
import time
import uuid
@ -49,6 +49,35 @@ class UserView(View):
return json_response(error=error)
class RoleView(View):
def get(self, request):
roles = Role.objects.all()
return json_response(roles)
def post(self, request):
form, error = JsonParser(
Argument('id', type=int, required=False),
Argument('name', help='请输入角色名称'),
Argument('desc', required=False)
).parse(request.body)
if error is None:
if form.id:
Role.objects.filter(pk=form.id).update(**form)
else:
Role.objects.create(created_by=request.user, **form)
return json_response(error=error)
def delete(self, request):
form, error = JsonParser(
Argument('id', type=int, help='参数错误')
).parse(request.GET)
if error is None:
if User.objects.filter(role_id=form.id).exists():
return json_response(error='已有用户使用了该角色,请解除关联后再尝试删除')
Role.objects.filter(pk=form.id).delete()
return json_response(error=error)
def login(request):
form, error = JsonParser(
Argument('username', help='请输入用户名'),