user change del add

This commit is contained in:
holger.trampe 2021-07-29 14:08:16 +02:00
parent 315367f203
commit ca2b6780de
4 changed files with 75 additions and 14 deletions

View File

@ -9,17 +9,17 @@
</div> </div>
<small>Legen Sie hier die Stammdaten des neuen Mitarbeiters fest.</small> <small>Legen Sie hier die Stammdaten des neuen Mitarbeiters fest.</small>
<form method="POST"> <form method="POST" id="new_user_form">
{% csrf_token %} {% csrf_token %}
{{ newuserform|crispy }} {{ newuserform|crispy }}
<div class="form-check"> <!--<div class="form-check">
<input class="form-check-input" type="checkbox" value="true" id="sendmailnewuser" name="sendmailnewuser"> <input class="form-check-input" type="checkbox" value="true" id="sendmailnewuser" name="sendmailnewuser">
<label class="form-check-label" for="sendmailnewuser" name="sendmailnewuser"> <label class="form-check-label" for="sendmailnewuser" name="sendmailnewuser">
E-Mailbenachrichtigung schicken E-Mailbenachrichtigung schicken
</label> </label>
</div> </div>-->
<small>*: Der Benutzer erhält direkt eine E-Mail mit einem Link zur Passworterstellung, wenn der Haken bei <i>E-Mailbenachrichtung schicken</i> gesetzt ist. Dies kann später auch wiederholt werden.</small> <small>*: Der Benutzer erhält direkt eine Willkommens-E-Mail mit einem Link zur Passworterstellung.</small>
{% if request.user.profile.agency.paymentplan != "0" %} {% if request.user.profile.agency.paymentplan != "0" %}
<hr> <hr>
@ -28,8 +28,14 @@
<hr> <hr>
<a class="btn" href="{% url 'dasettings' %} ">Abbrechen</a> <a class="btn" href="{% url 'dasettings' %} ">Abbrechen</a>
<button type="submit" class="btn btn-primary" style="float: right">Weiter zu Schritt 2</button> <button id="createbtn" type="submit" class="btn btn-primary" style="float: right">Weiter zu Schritt 2</button>
</form> </form>
</div> </div>
</div> </div>
<script>
/* Disable the button for submitting after click */
$("#new_user_form").submit(function(event){
$("#createbtn").prop("disabled", true);
})
</script>
{% endblock content %} {% endblock content %}

View File

@ -61,8 +61,8 @@
<span id="user_email">{{ mail }}</span>&nbsp;<button onclick="javascript:ChangeMail()" style="float: right" type="button" class="btn btn-secondary btn-sm" id="changemailbutton"><i class="fas fa-pen"></i></button> <span id="user_email">{{ mail }}</span>&nbsp;<button onclick="javascript:ChangeMail()" style="float: right" type="button" class="btn btn-secondary btn-sm" id="changemailbutton"><i class="fas fa-pen"></i></button>
</p> </p>
<div style="float: left"> <div style="float: left">
<button type="button" id="" onclick="javascript:sendPassMail({{vieweduser}})" class="btn btn-primary btn-sm active" >Passwort wiederherstellen</button>&nbsp;&nbsp; <!--<button type="button" id="" onclick="javascript:sendPassMail({{vieweduser}})" class="btn btn-primary btn-sm active" >Passwort wiederherstellen</button>&nbsp;&nbsp;
<br /><br /><span class="alert alert-success" id="mailsend" role="alert" style="display: none;">&nbsp;E-Mail gesendet!</span> <br /><br /><span class="alert alert-success" id="mailsend" role="alert" style="display: none;">&nbsp;E-Mail gesendet!</span>-->
</div> </div>
</div> </div>
</div> </div>

View File

@ -914,8 +914,20 @@ def SettingsAjaxRouter(request):
success = False success = False
else: else:
tempuser.email = newmail tempuser.email = newmail
tempuser.username = newmail #tempuser.username = newmail
tempuser.save() 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 success = True
else: else:
data = {"mail" : tempmail} data = {"mail" : tempmail}
@ -933,6 +945,18 @@ def SettingsAjaxRouter(request):
tempuser.save() tempuser.save()
data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name} data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name}
success = True 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: else:
data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name} data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name}
success = False success = False
@ -1605,7 +1629,7 @@ def UserChangeMain(request, pk):
} }
return render(request, 'dasettings/user_changemaindata.html', context) return render(request, 'dasettings/user_changemaindata.html', context)
# Method for first User-Creation-Step # Method for first User-Creation-Step - NEW USER
@login_required @login_required
def NewUserFirstStep(request): def NewUserFirstStep(request):
context = { context = {
@ -1614,22 +1638,44 @@ def NewUserFirstStep(request):
if request.method == 'POST': if request.method == 'POST':
newuserform = UserNewUserForm(request.POST) newuserform = UserNewUserForm(request.POST)
if newuserform.is_valid(): if newuserform.is_valid():
if(request.POST.get("sendmailnewuser")): #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')}) # 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) # 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 = newuserform.save(commit=False)
newuser.username = newuser.email newuser.username = newuser.email
newprofile = Profile(agency=request.user.profile.agency, parent=None) newprofile = Profile(agency=request.user.profile.agency, parent=None)
newprofile.save() newprofile.save()
newuser.profile = newprofile newuser.profile = newprofile
newuser.save() 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 # USERTIME
user_time = UserTime(user=newuser) user_time = UserTime(user=newuser)
user_time.save() user_time.save()
# USER NOTIFICATIONS # USER NOTIFICATIONS
user_notifications = UserNotifications(user=newuser) #user_notifications = UserNotifications.objects.create(user=newuser)
user_notifications.save() #user_notifications.save()
newuser.usernotifications = user_notifications newuser.usernotifications = user_notifications
newuser.usertime = user_time newuser.usertime = user_time

View File

@ -1104,10 +1104,19 @@ class ProfileDeleteView(LoginRequiredMixin, DeleteView):
a.published_by = logged_user a.published_by = logged_user
a.save() 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) response = super(ProfileDeleteView, self).delete(request, *args, **kwargs)
name = user.first_name + " " + user.last_name name = user.first_name + " " + user.last_name
messages.success(request, f'Benutzer ' +name+ ' wurde gelöscht!') messages.success(request, f'Benutzer ' +name+ ' wurde gelöscht!')
return response return response
# Saves a new User in parent of others Users. # Saves a new User in parent of others Users.