Use LdapManager delete_user to delete the user's account
This commit is contained in:
		
					parent
					
						
							
								4e9493f198
							
						
					
				
			
			
				commit
				
					
						db4ffe7979
					
				
			
		
					 1 changed files with 21 additions and 18 deletions
				
			
		
							
								
								
									
										39
									
								
								dal/views.py
									
										
									
									
									
								
							
							
						
						
									
										39
									
								
								dal/views.py
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -379,24 +379,27 @@ class DeleteAccount(View):
 | 
			
		|||
 | 
			
		||||
        # Does the user exist?
 | 
			
		||||
        username = request.POST.get('username')
 | 
			
		||||
        if not check_user_exists(username):
 | 
			
		||||
            return render(request, 'error.html', { 'urlname': urlname, 'service': service, 'error': 'Unknown user.' } )
 | 
			
		||||
 | 
			
		||||
        # Do user and password match?
 | 
			
		||||
        password = request.POST.get('password')
 | 
			
		||||
        pwd = r'%s' % password
 | 
			
		||||
        check = authenticate(request, username=username, password=pwd)
 | 
			
		||||
        if check is None:
 | 
			
		||||
            return render(request, 'error.html', { 'urlname': urlname, 'service': service, 'error': 'Wrong password for user.' } )
 | 
			
		||||
 | 
			
		||||
        # Try to delete the user
 | 
			
		||||
        with get_pool().next() as rpc:
 | 
			
		||||
            result = rpc.deleteuser.delete_user(username)
 | 
			
		||||
        # User deleted
 | 
			
		||||
        if result == True:
 | 
			
		||||
            logout(request)
 | 
			
		||||
            return render(request, 'deleteduser.html', { 'user': username } )
 | 
			
		||||
        # User not deleted, got some kind of error
 | 
			
		||||
        ldap_manager = LdapManager()
 | 
			
		||||
        user_exists, user_details = ldap_manager.check_user_exists(username)
 | 
			
		||||
        if user_exists and request.user.username == username:
 | 
			
		||||
            # Do user and password match?
 | 
			
		||||
            password = request.POST.get('password')
 | 
			
		||||
            pwd = r'%s' % password
 | 
			
		||||
            check = authenticate(request, username=username, password=pwd)
 | 
			
		||||
            if check is None:
 | 
			
		||||
                return render(request, 'error.html',
 | 
			
		||||
                              {'urlname': urlname, 'service': service,
 | 
			
		||||
                               'error': 'Wrong password for user.'})
 | 
			
		||||
            result = ldap_manager.delete_user(username)
 | 
			
		||||
            # User deleted
 | 
			
		||||
            if result:
 | 
			
		||||
                logout(request)
 | 
			
		||||
                return render(request, 'deleteduser.html', {'user': username})
 | 
			
		||||
            # User not deleted, got some kind of error
 | 
			
		||||
            else:
 | 
			
		||||
                return render(request, 'error.html',
 | 
			
		||||
                              {'urlname': urlname, 'service': service,
 | 
			
		||||
                               'error': result})
 | 
			
		||||
        else:
 | 
			
		||||
            return render(request, 'error.html', { 'urlname': urlname, 'service': service, 'error': result } )
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue