From ca2b6780de9d9b1f6a95b1e7d986ce5b91ba39f0 Mon Sep 17 00:00:00 2001
From: "holger.trampe"
Date: Thu, 29 Jul 2021 14:08:16 +0200
Subject: [PATCH] user change del add
---
.../dasettings/user_newuser_step1.html | 16 +++--
.../templates/dasettings/user_usprof.html | 4 +-
dasettings/views.py | 60 ++++++++++++++++---
users/views.py | 9 +++
4 files changed, 75 insertions(+), 14 deletions(-)
diff --git a/dasettings/templates/dasettings/user_newuser_step1.html b/dasettings/templates/dasettings/user_newuser_step1.html
index eb89e0b..967e29c 100644
--- a/dasettings/templates/dasettings/user_newuser_step1.html
+++ b/dasettings/templates/dasettings/user_newuser_step1.html
@@ -9,17 +9,17 @@
Legen Sie hier die Stammdaten des neuen Mitarbeiters fest.
-
-
-
E-Mail gesendet!
+
diff --git a/dasettings/views.py b/dasettings/views.py
index c8bbc6e..2d2e7d2 100644
--- a/dasettings/views.py
+++ b/dasettings/views.py
@@ -914,8 +914,20 @@ def SettingsAjaxRouter(request):
success = False
else:
tempuser.email = newmail
- tempuser.username = newmail
+ #tempuser.username = newmail
tempuser.save()
+ headers = {
+ 'Accept' : 'application/json',
+ 'Access-Control-Allow-Headers' : 'OCS-APIRequest',
+ 'OCS-APIRequest' : 'true'
+ }
+ data_nc = {
+ "key" : "email",
+ "value" : newmail
+ }
+ print(data_nc)
+ r = requests.put(settings.NEXTCLOUD_URL + "/ocs/v1.php/cloud/users/" + tempuser.username,headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), data=data_nc)
+ print(r.text)
success = True
else:
data = {"mail" : tempmail}
@@ -933,6 +945,18 @@ def SettingsAjaxRouter(request):
tempuser.save()
data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name}
success = True
+
+ # first_name and last_name CHANGE - Update in NC as DisplayName
+ headers = {
+ 'Accept' : 'application/json',
+ 'Access-Control-Allow-Headers' : 'OCS-APIRequest',
+ 'OCS-APIRequest' : 'true'
+ }
+ data_nc = {
+ "key" : "displayname",
+ "value" : tempuser.first_name + " " + tempuser.last_name
+ }
+ r = requests.put(settings.NEXTCLOUD_URL + "/ocs/v1.php/cloud/users/" + tempuser.username,headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), data=data_nc)
else:
data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name}
success = False
@@ -1605,7 +1629,7 @@ def UserChangeMain(request, pk):
}
return render(request, 'dasettings/user_changemaindata.html', context)
-# Method for first User-Creation-Step
+# Method for first User-Creation-Step - NEW USER
@login_required
def NewUserFirstStep(request):
context = {
@@ -1614,22 +1638,44 @@ def NewUserFirstStep(request):
if request.method == 'POST':
newuserform = UserNewUserForm(request.POST)
if newuserform.is_valid():
- if(request.POST.get("sendmailnewuser")):
- msg_html = render_to_string('users/newusers_email.html', {'username': newuserform.cleaned_data.get('first_name') + " " + newuserform.cleaned_data.get('last_name')})
- send_mail(request.user.profile.agency.name + ' Account', 'Hallo ' + newuserform.cleaned_data.get('first_name') + ' ' + newuserform.cleaned_data.get('last_name') + '! Bitte setzen sie sich auf https://app.digitale-agentur.com/password-reset/ ein Passwort.','noreply@digitale-agentur.com',[newuserform.cleaned_data.get('email')],html_message=msg_html,fail_silently=True)
+ #if(request.POST.get("sendmailnewuser")):
+ # msg_html = render_to_string('users/newusers_email.html', {'username': newuserform.cleaned_data.get('first_name') + " " + newuserform.cleaned_data.get('last_name')})
+ # send_mail(request.user.profile.agency.name + ' Account', 'Hallo ' + newuserform.cleaned_data.get('first_name') + ' ' + newuserform.cleaned_data.get('last_name') + '! Bitte setzen sie sich auf https://app.digitale-agentur.com/password-reset/ ein Passwort.','noreply@digitale-agentur.com',[newuserform.cleaned_data.get('email')],html_message=msg_html,fail_silently=True)
newuser = newuserform.save(commit=False)
newuser.username = newuser.email
newprofile = Profile(agency=request.user.profile.agency, parent=None)
newprofile.save()
newuser.profile = newprofile
newuser.save()
+
+ # NEW USER IN DJANGO - ADD USER TO NC
+ # Data for the new User
+ try:
+ data_nc = {
+ "userid": newuser.username,
+ "password": "",
+ "displayName": newuser.first_name + " " + newuser.last_name,
+ "email": newuser.email,
+ "groups[]": "agencymaingroupid_" + str(request.user.profile.agency.pk)
+ }
+
+ headers = {
+ 'Accept' : 'application/json',
+ 'Access-Control-Allow-Headers' : 'OCS-APIRequest',
+ 'OCS-APIRequest' : 'true'
+ }
+
+ # Request for adding the new User
+ r = requests.post(settings.NEXTCLOUD_URL + "ocs/v1.php/cloud/users", data=data_nc, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
+ except:
+ pass
# USERTIME
user_time = UserTime(user=newuser)
user_time.save()
# USER NOTIFICATIONS
- user_notifications = UserNotifications(user=newuser)
- user_notifications.save()
+ #user_notifications = UserNotifications.objects.create(user=newuser)
+ #user_notifications.save()
newuser.usernotifications = user_notifications
newuser.usertime = user_time
diff --git a/users/views.py b/users/views.py
index be63edc..9f3c365 100644
--- a/users/views.py
+++ b/users/views.py
@@ -1104,10 +1104,19 @@ class ProfileDeleteView(LoginRequiredMixin, DeleteView):
a.published_by = logged_user
a.save()
'''
+ # NC DELETE USER IN NC TOO!
+ headers = {
+ 'Accept' : 'application/json',
+ 'Access-Control-Allow-Headers' : 'OCS-APIRequest',
+ 'OCS-APIRequest' : 'true'
+ }
+
+ r = requests.request("DELETE", settings.NEXTCLOUD_URL + "/ocs/v1.php/cloud/users/" + user.username,headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
response = super(ProfileDeleteView, self).delete(request, *args, **kwargs)
name = user.first_name + " " + user.last_name
messages.success(request, f'Benutzer ' +name+ ' wurde gelöscht!')
+
return response
# Saves a new User in parent of others Users.