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. -
+ {% csrf_token %} {{ newuserform|crispy }} -
+ + *: Der Benutzer erhält direkt eine Willkommens-E-Mail mit einem Link zur Passworterstellung. {% if request.user.profile.agency.paymentplan != "0" %}
@@ -28,8 +28,14 @@
Abbrechen - +
+ {% endblock content %} \ No newline at end of file diff --git a/dasettings/templates/dasettings/user_usprof.html b/dasettings/templates/dasettings/user_usprof.html index 4468ce6..b162fa3 100644 --- a/dasettings/templates/dasettings/user_usprof.html +++ b/dasettings/templates/dasettings/user_usprof.html @@ -61,8 +61,8 @@ {{ mail }} 

-    -

+
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.