mirror of https://github.com/openspug/spug
				
				
				
			A api update
							parent
							
								
									1a039f212a
								
							
						
					
					
						commit
						a512fc236a
					
				| 
						 | 
					@ -12,6 +12,7 @@ class User(models.Model, ModelMixin):
 | 
				
			||||||
    access_token = models.CharField(max_length=32)
 | 
					    access_token = models.CharField(max_length=32)
 | 
				
			||||||
    token_expired = models.IntegerField(null=True)
 | 
					    token_expired = models.IntegerField(null=True)
 | 
				
			||||||
    last_login = models.CharField(max_length=20)
 | 
					    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_at = models.CharField(max_length=20, default=human_datetime)
 | 
				
			||||||
    created_by = models.ForeignKey('User', models.PROTECT, related_name='+', null=True)
 | 
					    created_by = models.ForeignKey('User', models.PROTECT, related_name='+', null=True)
 | 
				
			||||||
| 
						 | 
					@ -35,3 +36,19 @@ class User(models.Model, ModelMixin):
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        db_table = 'users'
 | 
					        db_table = 'users'
 | 
				
			||||||
        ordering = ('-id',)
 | 
					        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',)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,4 +6,5 @@ urlpatterns = [
 | 
				
			||||||
    url(r'^login/', login),
 | 
					    url(r'^login/', login),
 | 
				
			||||||
    url(r'^logout/', logout),
 | 
					    url(r'^logout/', logout),
 | 
				
			||||||
    url(r'^user/$', UserView.as_view()),
 | 
					    url(r'^user/$', UserView.as_view()),
 | 
				
			||||||
 | 
					    url(r'^role/$', RoleView.as_view()),
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
from django.core.cache import cache
 | 
					from django.core.cache import cache
 | 
				
			||||||
from django.views.generic import View
 | 
					from django.views.generic import View
 | 
				
			||||||
from libs import JsonParser, Argument, human_datetime, json_response
 | 
					from libs import JsonParser, Argument, human_datetime, json_response
 | 
				
			||||||
from .models import User
 | 
					from .models import User, Role
 | 
				
			||||||
import time
 | 
					import time
 | 
				
			||||||
import uuid
 | 
					import uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,6 +49,35 @@ class UserView(View):
 | 
				
			||||||
        return json_response(error=error)
 | 
					        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):
 | 
					def login(request):
 | 
				
			||||||
    form, error = JsonParser(
 | 
					    form, error = JsonParser(
 | 
				
			||||||
        Argument('username', help='请输入用户名'),
 | 
					        Argument('username', help='请输入用户名'),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue