diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html
index 464482b29b..0d1d11e7fd 100644
--- a/InvenTree/part/templates/part/category.html
+++ b/InvenTree/part/templates/part/category.html
@@ -144,7 +144,8 @@
{% block details %}
-
+
{% endblock %}
diff --git a/InvenTree/users/views.py b/InvenTree/users/api.py
similarity index 67%
rename from InvenTree/users/views.py
rename to InvenTree/users/api.py
index 97e5f48355..a109884ea9 100644
--- a/InvenTree/users/views.py
+++ b/InvenTree/users/api.py
@@ -1,3 +1,9 @@
+
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from rest_framework import generics
+
from rest_framework import generics, permissions
from django.contrib.auth.models import User
from django.core.exceptions import ObjectDoesNotExist
@@ -9,6 +15,47 @@ from rest_framework.response import Response
from rest_framework import status
+
+from .models import RuleSet, check_user_role
+
+
+class RoleDetails(APIView):
+ """
+ API endpoint which lists the available role permissions
+ for the current user
+
+ (Requires authentication)
+ """
+
+ permission_classes = [
+ permissions.IsAuthenticated
+ ]
+
+ def get(self, request, *args, **kwargs):
+
+ user = request.user
+
+ data = {}
+
+ for ruleset in RuleSet.RULESET_CHOICES:
+
+ role, text = ruleset
+
+ permissions = []
+
+ for permission in RuleSet.RULESET_PERMISSIONS:
+ if check_user_role(user, role, permission):
+
+ permissions.append(permission)
+
+ if len(permissions) > 0:
+ data[role] = permissions
+ else:
+ data[role] = None
+
+ return Response(data)
+
+
class UserDetail(generics.RetrieveAPIView):
""" Detail endpoint for a single user """
diff --git a/InvenTree/users/urls.py b/InvenTree/users/urls.py
index 312789b55b..df05ae684a 100644
--- a/InvenTree/users/urls.py
+++ b/InvenTree/users/urls.py
@@ -1,11 +1,12 @@
from django.conf.urls import url
-from . import views
+from . import api
user_urls = [
- url(r'^(?P[0-9]+)/?$', views.UserDetail.as_view(), name='user-detail'),
+ url(r'^(?P[0-9]+)/?$', api.UserDetail.as_view(), name='user-detail'),
- url(r'token', views.GetAuthToken.as_view(), name='api-token'),
+ url(r'roles', api.RoleDetails.as_view(), name='api-roles'),
+ url(r'token', api.GetAuthToken.as_view(), name='api-token'),
- url(r'^$', views.UserList.as_view()),
+ url(r'^$', api.UserList.as_view()),
]