diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 8b69953ee..90b9aa94e 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -48,6 +48,7 @@ INSTALLED_APPS = [ 'ops.apps.OpsConfig', 'audits.apps.AuditsConfig', 'common.apps.CommonConfig', + 'rest_framework', 'bootstrapform', # 'django.contrib.admin', 'django.contrib.auth', @@ -166,4 +167,12 @@ AUTH_USER_MODEL = 'users.User' BOOTSTRAP_COLUMN_COUNT = 11 # Init data or generate fake data source for development -FIXTURE_DIRS = [os.path.join(BASE_DIR, 'fixtures'), ] \ No newline at end of file +FIXTURE_DIRS = [os.path.join(BASE_DIR, 'fixtures'), ] + +REST_FRAMEWORK = { + # Use Django's standard `django.contrib.auth` permissions, + # or allow read-only access for unauthenticated users. + 'DEFAULT_PERMISSION_CLASSES': [ + 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' + ], +} \ No newline at end of file diff --git a/apps/jumpserver/urls.py b/apps/jumpserver/urls.py index a362f54d6..491c2ad70 100644 --- a/apps/jumpserver/urls.py +++ b/apps/jumpserver/urls.py @@ -25,6 +25,10 @@ urlpatterns = [ # url(r'^admin/', admin.site.urls), ] +urlpatterns += [ + url(r'^api/users/', include('users.api_urls')), +] + if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/apps/users/api.py b/apps/users/api.py index ecbf4289f..1970a6d0f 100644 --- a/apps/users/api.py +++ b/apps/users/api.py @@ -1,3 +1,12 @@ # ~*~ coding: utf-8 ~*~ -# +# +from rest_framework import viewsets + +from .serializers import UserSerializer +from .models import User, UserGroup, Role + + +class UserViewSet(viewsets.ModelViewSet): + queryset = User.objects.all() + serializer_class = UserSerializer diff --git a/apps/users/api_urls.py b/apps/users/api_urls.py new file mode 100644 index 000000000..e31d59ebb --- /dev/null +++ b/apps/users/api_urls.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# + +from django.conf.urls import url, include +from rest_framework import routers + +from .api import UserViewSet + + +router = routers.DefaultRouter() +router.register(r'users', UserViewSet) + +urlpatterns = [ + url(r'v1/', include(router.urls)), + url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) +] + diff --git a/apps/users/serializers.py b/apps/users/serializers.py new file mode 100644 index 000000000..aefe0569b --- /dev/null +++ b/apps/users/serializers.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# + +from rest_framework import serializers + +from .models import Role, User, UserGroup + + +class UserSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = User + fields = '__all__'