def edit_user_form(request, pattern, cn): try: lists = dict() lists["pattern"] = pattern lists["action"] = reverse( "ldap.user.edit", kwargs={"pattern": pattern, "cn": cn}) lists["edit"] = True ldap = Ldap(AuthSession(request.session).get_user().get_username()) group_list = get_groups(ldap) policy_list = get_policies(ldap) if pattern == PATTERN_TYPES.INTERNAL: groupPattern = ldap.groupStandard usertype_list = CHOICES_GROUP elif pattern == PATTERN_TYPES.EXTERNAL: groupPattern = ldap.groupStandardExternal usertype_list = None if request.method == "POST": form = UserForm(group_list, policy_list, usertype_list, request.POST, initial={ 'groupPattern': groupPattern}) if form.is_valid(): data = form.cleaned_data for e in data.keys(): if type(data[e]) == unicode or type(data[e]) == int: data[e] = str(data[e]) if valid_form_user(ldap, request, data['cn'], data['uidNumber'], data['employeeNumber'], data['mail'], edit=True): ldap.edit_user(data['cn'], data['uidNumber'], data['groupPattern'], data['homeDirectory'], data['givenName'], data['initials'], data['sn'], data['mail'], data['homePhone'], data['mobile'], data['street'], data[ 'description'], data['employeeNumber'], data['employeeType'], data['loginShell'], data['shadowLastChange'], data['shadowMin'], data['shadowMax'], data['shadowWarning'], data['policy'], data['groups']) client_user = AuthSession( request.session).get_clientFactory().create_usuario() try: local_user = client_user.get_by_user_ldap(data['cn']) local_user = local_user['usuario'] name = data['givenName'] + ' ' + \ data['initials'] + ' ' + data['sn'] client_user.alterar(local_user['id'], local_user['user'], local_user[ 'pwd'], name, local_user['ativo'], data['mail'], local_user['user_ldap']) except UsuarioNaoExisteError: pass messages.add_message( request, messages.SUCCESS, ldap_messages.get("success_edit_user")) return HttpResponseRedirect(reverse('ldap.user.list', args=[pattern])) else: user = ldap.get_user(cn) user['groups'] = ldap.get_groups_user(cn) user['groupPattern'] = groupPattern form = UserForm( group_list, policy_list, usertype_list, initial=user) except LDAPNotFoundError, e: messages.add_message( request, messages.ERROR, ldap_messages.get("invalid_user") % cn) return HttpResponseRedirect(reverse('ldap.user.list', args=[pattern]))
def delete_user_all(request, pattern): if request.method == 'POST': ldap = Ldap(AuthSession(request.session).get_user().get_username()) form = DeleteForm(request.POST) if form.is_valid(): # All cns to be deleted cns = split_to_array(form.cleaned_data['ids']) # All messages to display error_list = list() # Control others exceptions have_errors = False # For each user selected to remove for cn in cns: try: ldap.rem_user(cn) client_user = AuthSession( request.session).get_clientFactory().create_usuario() try: local_user = client_user.get_by_user_ldap(cn) local_user = local_user['usuario'] client_user.alterar(local_user['id'], local_user['user'], local_user[ 'pwd'], local_user['nome'], local_user['ativo'], local_user['email'], None) except UsuarioNaoExisteError: pass except LDAPMethodError, e: error_list.append(cn) have_errors = True except LDAPError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(cns): messages.add_message( request, messages.ERROR, error_messages.get("can_not_remove_all")) # If cant remove someones elif len(error_list) > 0: msg = "" for id_error in error_list: msg = msg + id_error + ", " msg = error_messages.get("can_not_remove") % msg[:-2] messages.add_message(request, messages.WARNING, msg) # If all has ben removed elif have_errors == False: messages.add_message( request, messages.SUCCESS, ldap_messages.get("success_remove_user")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error"))