From d19a1106fe4d83f118133c1c949d44db9ff9c743 Mon Sep 17 00:00:00 2001
From: Christian Dresen <c.dresen@fh-muenster.de>
Date: Wed, 14 Jun 2017 23:19:31 +0200
Subject: [PATCH] [WarpService] Added WarpService Endpoint with 3d Printer

---
 www/web/warpauth/models.py                 |  4 +++-
 www/web/warpservice/__init__.py            |  0
 www/web/warpservice/admin.py               |  2 ++
 www/web/warpservice/apps.py                |  5 +++++
 www/web/warpservice/migrations/__init__.py |  0
 www/web/warpservice/models.py              |  1 +
 www/web/warpservice/tests.py               |  3 +++
 www/web/warpservice/urls.py                |  7 +++++++
 www/web/warpservice/views.py               | 14 ++++++++++++++
 www/web/warpzone/urls.py                   |  3 +++
 10 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 www/web/warpservice/__init__.py
 create mode 100644 www/web/warpservice/admin.py
 create mode 100644 www/web/warpservice/apps.py
 create mode 100644 www/web/warpservice/migrations/__init__.py
 create mode 100644 www/web/warpservice/models.py
 create mode 100644 www/web/warpservice/tests.py
 create mode 100644 www/web/warpservice/urls.py
 create mode 100644 www/web/warpservice/views.py

diff --git a/www/web/warpauth/models.py b/www/web/warpauth/models.py
index e84a6ab..7c4578f 100644
--- a/www/web/warpauth/models.py
+++ b/www/web/warpauth/models.py
@@ -39,7 +39,9 @@ class LdapUser(ldapdb.models.Model):
     cn = CharField(db_column='cn', max_length=200)
     card_id = CharField(db_column='employeeNumber', max_length=200)
     pinCode = CharField(db_column='carLicense', max_length=100)
-
+    memberof = ListField(db_column='memberOf')
+    
+    
     def __str__(self):
         return self.uid
 
diff --git a/www/web/warpservice/__init__.py b/www/web/warpservice/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/www/web/warpservice/admin.py b/www/web/warpservice/admin.py
new file mode 100644
index 0000000..c6fe108
--- /dev/null
+++ b/www/web/warpservice/admin.py
@@ -0,0 +1,2 @@
+from django.contrib import admin
+
diff --git a/www/web/warpservice/apps.py b/www/web/warpservice/apps.py
new file mode 100644
index 0000000..ed81e0b
--- /dev/null
+++ b/www/web/warpservice/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class WarpmainConfig(AppConfig):
+    name = 'warpservice'
diff --git a/www/web/warpservice/migrations/__init__.py b/www/web/warpservice/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/www/web/warpservice/models.py b/www/web/warpservice/models.py
new file mode 100644
index 0000000..137941f
--- /dev/null
+++ b/www/web/warpservice/models.py
@@ -0,0 +1 @@
+from django.db import models
diff --git a/www/web/warpservice/tests.py b/www/web/warpservice/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/www/web/warpservice/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/www/web/warpservice/urls.py b/www/web/warpservice/urls.py
new file mode 100644
index 0000000..2e46877
--- /dev/null
+++ b/www/web/warpservice/urls.py
@@ -0,0 +1,7 @@
+from django.conf.urls import url, include
+from warpservice import views
+
+urlpatterns = [
+    url(r'^api/services/3dprinter$', views.printer_3d),
+
+]
diff --git a/www/web/warpservice/views.py b/www/web/warpservice/views.py
new file mode 100644
index 0000000..2e0ad96
--- /dev/null
+++ b/www/web/warpservice/views.py
@@ -0,0 +1,14 @@
+from rest_framework.decorators import api_view
+from rest_framework.response import Response
+from rest_framework import status
+from warpauth.models import LdapUser
+
+@api_view(['GET'])
+def printer_3d(request):
+    ret= {"admin":{}, "user":{}}
+    users = LdapUser.objects.filter(memberof__contains="cn=3dprint-user,ou=infrastructure,dc=warpzone,dc=ms").filter(memberof__contains="cn=active,ou=groups,dc=warpzone,dc=ms")
+    for user in users:
+        if user.card_id:
+            ret["user"][user.card_id] = user.uid
+    return Response(ret)
+
diff --git a/www/web/warpzone/urls.py b/www/web/warpzone/urls.py
index b8d82b4..b3bd058 100644
--- a/www/web/warpzone/urls.py
+++ b/www/web/warpzone/urls.py
@@ -23,3 +23,6 @@ if "warpapi" in settings.INSTALLED_APPS:
 
 if "warppay" in settings.INSTALLED_APPS:
     urlpatterns.append(url(r'^', include('warppay.urls')))
+
+if "warpservice" in settings.INSTALLED_APPS:
+    urlpatterns.append(url(r'^', include('warpservice.urls')))
-- 
GitLab