def delete_sudoer_all(request): 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 sudoer selected to remove for cn in cns: try: ldap.rem_sudoer(cn) except LDAPNotFoundError, 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_sudoer")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error"))
def delete_all(request): equip_nam = request.POST['equip_name'] if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) equip_script = auth.get_clientFactory().create_equipamento_roteiro( ) # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) equipment = form.cleaned_data['equip_id'] equip_nam = form.cleaned_data['equip_name'] # Control others exceptions have_errors = False # For each script selected to remove for id_es in ids: try: # Execute in NetworkAPI equip_script.remover(equipment, id_es) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If all has ben removed if have_errors == False: messages.add_message( request, messages.SUCCESS, equip_script_messages.get("success_remove")) else: messages.add_message( request, messages.WARNING, error_messages.get("can_not_remove_error")) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one"))
def delete_interface(request, interface_id=None): auth = AuthSession(request.session) equip_interface = auth.get_clientFactory().create_api_interface_request() try: equip_interface.remove([interface_id]) messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_remove")) except NetworkAPIClientError as e: message = str( error_messages.get("can_not_remove_error")) + " " + str(e) logger.error(e) messages.add_message(request, messages.WARNING, message) except ValueError as e: logger.error(e) messages.add_message(request, messages.ERROR, e) except Exception as e: logger.error(e) messages.add_message(request, messages.ERROR, e) url = request.META.get('HTTP_REFERER') if request.META.get( 'HTTP_REFERER') else reverse('interface.list') return HttpResponseRedirect(url)
def template_delete(request): auth = AuthSession(request.session) client = auth.get_clientFactory() if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user user = AuthSession(request.session).get_user() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) for id in ids: id_split = id.split('+') template_name = id_split[0] template_name = urllib.unquote_plus(str(template_name)) network = id_split[1] if check_template(template_name, network, user): client.create_ambiente().set_template( 0, template_name, network) delete_template(template_name, network, user) messages.add_message(request, messages.SUCCESS, acl_messages.get("success_remove")) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one")) return HttpResponseRedirect(reverse('acl.template.list'))
def channel(request): if request.method == 'POST': form = ChannelForm(request.POST) equip_nam = request.POST['equip_name'] if form.is_valid(): ids = split_to_array(form.cleaned_data['ids_channel']) interfaces_ids = "" for id_interface in ids: interfaces_ids = interfaces_ids + "-" + str(id_interface) url_param = reverse("equip.interface.add.channel", args=[equip_nam]) url_param = url_param + "/?ids=" + interfaces_ids + "?" + equip_nam return HttpResponseRedirect(url_param) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one")) url_param = reverse("interface.list") if len(equip_nam) > 2: url_param = url_param + "?search_equipment=" + equip_nam return HttpResponseRedirect(url_param) return redirect("home")
def delete_all(request): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): auth = AuthSession(request.session) client = auth.get_clientFactory() ids = split_to_array(form.cleaned_data['ids']) error_list = list() have_errors = False for id_var in ids: try: client.create_system().delete_all(id_var) except VariableError: error_list.append(id_var) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break if len(error_list) == len(ids): messages.add_message(request, messages.ERROR, error_messages.get("can_not_remove_all")) 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) elif have_errors == False: messages.add_message( request, messages.SUCCESS, system_variable_messages.get("success_delete")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error")) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one"))
def delete_all(request): equip_nam = request.POST['equip_name'] if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) equip_interface = auth.get_clientFactory().create_interface() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) equip_nam = form.cleaned_data['equip_name'] # Control others exceptions have_errors = False # For each interface selected for id_es in ids: try: # Remove in NetworkAPI equip_interface.remover(id_es) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If all has ben removed if have_errors == False: messages.add_message( request, messages.SUCCESS, equip_interface_messages.get("success_remove")) else: messages.add_message( request, messages.WARNING, error_messages.get("can_not_remove_error")) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one"))
def clean(self): cleaned_data = self.cleaned_data userType = cleaned_data.get("userType") homeDirectory = cleaned_data.get("homeDirectory") uidNumber = cleaned_data.get("uidNumber") groupPattern = cleaned_data.get("groupPattern") if groupPattern is not None: if str(groupPattern) == str(CHOICES_GROUP[0][0]): if homeDirectory is None or homeDirectory == "": self._errors["homeDirectory"] = self.error_class( [error_messages.get("required")]) if userType is None or userType == "": self._errors["userType"] = self.error_class( [error_messages.get("required")]) if uidNumber is not None: ldap = Ldap(None) if groupPattern == ldap.groupStandard: if not ldap.valid_range_user_internal(uidNumber): self._errors["uidNumber"] = self.error_class([ ldap_messages.get("error_range_out_user") % (ldap.rangeUsers[0], ldap.rangeUsers[-1]) ]) else: if not ldap.valid_range_user_external(uidNumber): self._errors["uidNumber"] = self.error_class([ ldap_messages.get("error_range_out_user") % (ldap.rangeUsersExternal[0], ldap.rangeUsersExternal[-1]) ]) return cleaned_data
def delete_interface(request, interface_id=None): auth = AuthSession(request.session) equip_interface = auth.get_clientFactory().create_api_interface_request() try: equip_interface.remove([interface_id]) messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_remove")) except NetworkAPIClientError, e: message = str(error_messages.get("can_not_remove_error")) + " " + str(e) logger.error(e) messages.add_message(request, messages.WARNING, message)
def channel_delete(request): equip_nam = request.POST['equip_name'] if request.method == 'POST': form = DeleteChannelForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) client = auth.get_clientFactory() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids_chan']) equip_nam = form.cleaned_data['equip_name'] # Control others exceptions have_errors = False for idt in ids: try: client.create_interface().delete_channel(idt) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True if have_errors == False: messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_remove_channel")) else: messages.add_message(request, messages.WARNING, error_messages.get("can_not_remove_error")) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one"))
def clean(self): cleaned_data = self.cleaned_data userType = cleaned_data.get("userType") homeDirectory = cleaned_data.get("homeDirectory") uidNumber = cleaned_data.get("uidNumber") groupPattern = cleaned_data.get("groupPattern") if groupPattern is not None: if str(groupPattern) == str(CHOICES_GROUP[0][0]): if homeDirectory is None or homeDirectory == "": self._errors["homeDirectory"] = self.error_class( [error_messages.get("required")]) if userType is None or userType == "": self._errors["userType"] = self.error_class( [error_messages.get("required")]) if uidNumber is not None: ldap = Ldap(None) if groupPattern == ldap.groupStandard: if not ldap.valid_range_user_internal(uidNumber): self._errors["uidNumber"] = self.error_class([ldap_messages.get( "error_range_out_user") % (ldap.rangeUsers[0], ldap.rangeUsers[-1])]) else: if not ldap.valid_range_user_external(uidNumber): self._errors["uidNumber"] = self.error_class([ldap_messages.get( "error_range_out_user") % (ldap.rangeUsersExternal[0], ldap.rangeUsersExternal[-1])]) return cleaned_data
def _decorated(request, *args, **kwargs): auth = AuthSession(request.session) if auth.is_authenticated(): return view_func(request, *args, **kwargs) else: if request.is_ajax(): response = HttpResponseRedirect(URL_LOGIN) response.status_code = 278 response.content = error_messages.get('login_required') return response else: return HttpResponseRedirect(URL_LOGIN + '?redirect=' + request.path)
def delete_interface(request, interface_id=None): auth = AuthSession(request.session) equip_interface = auth.get_clientFactory().create_api_interface_request() try: equip_interface.remove([interface_id]) messages.add_message( request, messages.SUCCESS, equip_interface_messages.get("success_remove") ) except NetworkAPIClientError, e: message = str( error_messages.get("can_not_remove_error") ) + " " + str(e) logger.error(e) messages.add_message(request, messages.WARNING, message)
def delete_all(request): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) client_equip = auth.get_clientFactory().create_equipamento() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) delete_equipments_shared(request, client_equip, ids) else: messages.add_message( request, messages.ERROR, error_messages.get('select_one')) # Redirect to list_all action return redirect('equipment.search.list')
def delete_all(request): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) client_equip = auth.get_clientFactory().create_equipamento() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) delete_equipments_shared(request, client_equip, ids) else: messages.add_message(request, messages.ERROR, error_messages.get('select_one')) # Redirect to list_all action return redirect('equipment.search.list')
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_group")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error")) else: messages.add_message( request, messages.ERROR, error_messages.get("select_one")) return redirect('ldap.group.list') @log @login_required @has_perm([{"permission": ADMINISTRATION, "write": True, "read": True}]) def add_group_form(request): try: lists = dict() ldap = Ldap(AuthSession(request.session).get_user().get_username()) users_list = get_users(ldap)
def delete_all(request, id_egroup): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) client_equipament = auth.get_clientFactory().create_equipamento() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) # All messages to display error_list = list() # Control others exceptions have_errors = False # For each equipment selected to remove for id_equip in ids: try: # Execute in NetworkAPI client_equipament.remover_grupo(id_equip, id_egroup) except EquipmentDontRemoveError, e: # If isn't possible, add in error list error_list.append(id_equip) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If can't remove some if len(error_list) > 0: list_equipment = cache_list_equipment_all(client_equipament) msg = "" for id_error in error_list: for equip in list_equipment: if equip['id'] == id_error: msg = msg + equip['nome'] + ", " break msg = equip_group_messages.get("can_not_remove") % msg[:-2] messages.add_message(request, messages.WARNING, msg) # If all have been removed elif have_errors == False: messages.add_message( request, messages.SUCCESS, equip_group_messages.get("success_remove")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error"))
@has_perm([{"permission": EQUIPMENT_MANAGEMENT, "write": True}]) def delete_channel(request, channel_id=None): auth = AuthSession(request.session) client = auth.get_clientFactory() try: client.create_api_interface_request().remove_channel([channel_id]) messages.add_message(request, messages.SUCCESS, equip_interface_messages.get( "success_remove_channel")) except ValueError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) except NetworkAPIClientError, e: logger.error(e) message = str( error_messages.get("can_not_remove_error") ) + " " + str(e) messages.add_message(request, messages.ERROR, message) except Exception, e: logger.error(e) messages.add_message(request, messages.ERROR, e) url = request.META.get('HTTP_REFERER') if request.META.get( 'HTTP_REFERER') else reverse('interface.list') return HttpResponseRedirect(url) @log @login_required @has_perm([{"permission": EQUIPMENT_MANAGEMENT, "write": True}])
def generate_token(request): try: lists = {} form = forms.GenerateTokenForm( request.POST ) if request.method == 'POST' else forms.GenerateTokenForm() if form.is_valid(): user_ldap_ass = "" user = str(form.cleaned_data['user']) idt = None if not form.cleaned_data[ 'requestVip'] else form.cleaned_data['requestVip'] ttl = ACCESS_EXTERNAL_TTL if not form.cleaned_data[ 'p'] else form.cleaned_data['p'] # Login with LDAP if form.cleaned_data['is_ldap_user']: username_ldap, password_ldap = str(user).split("@") try: user_ldap = Ldap("").get_user(username_ldap) except LDAPNotFoundError, e: raise Exception(auth_messages.get("user_ldap_not_found")) pwd_ldap = user_ldap['userPassword'] activate = user_ldap.get('nsaccountlock') pwd = password_ldap if re.match("\{(MD|md)5\}.*", pwd_ldap, 0): pwd = base64.b64encode(hashlib.md5(pwd).digest()) pwd_ldap = pwd_ldap[pwd_ldap.index("}") + 1:] if pwd == pwd_ldap and (activate is None or activate.upper() == 'FALSE'): # Valid User client, client_user = facade.validate_user_networkapi( user, form.cleaned_data['is_ldap_user']) user_ldap_client = client_user.get('user') user_ldap_ass = user_ldap_client['user_ldap'] else: client_user = None else: # Valid User client, client_user = facade.validate_user_networkapi( user, form.cleaned_data['is_ldap_user']) # Valid User if client_user is None: raise UserNotAuthenticatedError("user_invalid") else: # Valid idt if idt is not None and not is_valid_int_param(idt): raise Exception( error_messages.get("invalid_param") % "requestVip") # Valid ttl if not is_valid_int_param(ttl): raise Exception(error_messages.get("invalid_param") % "p") if idt is not None: client.create_vip().get_by_id(idt) # Encrypt hash user_hash = Encryption().Encrypt(user + "@" + str(user_ldap_ass)) # Get Authenticate User authenticate_user = client_user.get('user') # Get Permissions by Authenticate User permissions = authenticate_user and authenticate_user.get( 'permission') # Generates token key = "%s:%s:%s" % (__name__, str(user), str(strftime("%Y%m%d%H%M%S"))) token = hashlib.sha1(key).hexdigest() data_to_cache = { "user_hash": user_hash, "permissions": permissions } # Set token in cache cache.set(token, data_to_cache, int(ttl)) lists["token"] = token if idt is not None: lists["url"] = reverse("vip-request.edit.external", args=[idt]) else: lists["url"] = reverse("vip-request.form.external") return render_to_response(templates.VIPREQUEST_TOKEN, lists, context_instance=RequestContext(request)) except InvalidParameterError, e: logger.error(e) lists["error"] = error_messages.get("invalid_param") % "id"
# Execute in NetworkAPI client_equip.remover(id_equip) except EquipamentoError, e: error_list.append(id_equip) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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 is False: messages.add_message(request, messages.SUCCESS, equip_messages.get('success_remove'))
def delete_all(request): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) roteiro = auth.get_clientFactory().create_roteiro() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) # All messages to display error_list = list() # Control others exceptions have_errors = False # For each script selected to remove for id_script in ids: try: # Execute in NetworkAPI roteiro.remover(id_script) except RoteiroError, e: # If isnt possible, add in error list error_list.append(id_script) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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, script_messages.get("success_remove")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error"))
def delete_all(request): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) client_user = auth.get_clientFactory().create_usuario() # All ids to be deleted ids = 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 id_user in ids: try: # Execute in NetworkAPI user = client_user.get_by_id(id_user).get('usuario') client_user.alterar(user.get("id"), user.get("user"), user.get("pwd"), user.get('nome'), 0, user.get('email'), user.get('user_ldap')) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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, user_messages.get("success_remove")) else: messages.add_message( request, messages.ERROR, error_messages.get("can_not_remove_error")) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one"))
@login_required @has_perm([{"permission": EQUIPMENT_MANAGEMENT, "write": True}]) def delete_channel(request, channel_id=None): auth = AuthSession(request.session) client = auth.get_clientFactory() try: client.create_api_interface_request().remove_channel([channel_id]) messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_remove_channel")) except ValueError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) except NetworkAPIClientError, e: logger.error(e) message = str( error_messages.get("can_not_remove_error") ) + " " + str(e) messages.add_message(request, messages.ERROR, message) except Exception, e: logger.error(e) messages.add_message(request, messages.ERROR, e) url = request.META.get('HTTP_REFERER') if request.META.get('HTTP_REFERER') else reverse('interface.list') return HttpResponseRedirect(url) @log @login_required @has_perm([{"permission": EQUIPMENT_MANAGEMENT, "write": True}]) def dissociate_channel_interface(request, channel_id, interface_id):
@log @login_required @has_perm([{"permission": EQUIPMENT_MANAGEMENT, "write": True}]) def delete_channel(request, channel_id=None): auth = AuthSession(request.session) client = auth.get_clientFactory() try: client.create_api_interface_request().remove_channel([channel_id]) messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_remove_channel")) except ValueError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) except NetworkAPIClientError, e: logger.error(e) message = str(error_messages.get("can_not_remove_error")) + " " + str(e) messages.add_message(request, messages.ERROR, message) except Exception, e: logger.error(e) messages.add_message(request, messages.ERROR, e) url = request.META.get('HTTP_REFERER') if request.META.get('HTTP_REFERER') else reverse('interface.list') return HttpResponseRedirect(url) @log @login_required @has_perm([{"permission": EQUIPMENT_MANAGEMENT, "write": True}]) def dissociate_channel_interface(request, channel_id, interface_id): auth = AuthSession(request.session)
def create_network(request, id_vlan="0", sf_number='0', sf_name='0', sf_environment='0', sf_nettype='0', sf_subnet='0', sf_ipversion='0', sf_network='0', sf_iexact='0', sf_acl='0'): """ Set column 'active = 1' in tables """ try: if request.method == 'POST': form = CreateForm(request.POST) # Get user auth = AuthSession(request.session) client = auth.get_clientFactory() networks_activated = False networks_was_activated = True equipments_ipv4 = list() equipments_ipv6 = list() if form.is_valid(): # If vlan with parameter id_vlan don't exist, # VlanNaoExisteError exception will be called vlan = client.create_vlan().get(id_vlan) environment = client.create_ambiente().buscar_por_id( vlan['vlan']["ambiente"]).get("ambiente") # All ids to be activated ids = split_to_array(form.cleaned_data['ids_create']) for id in ids: value = id.split('-') id_net = value[0] network_type = value[1] if network_type == 'v4': net = client.create_network().get_network_ipv4(id_net) else: net = client.create_network().get_network_ipv6(id_net) if net['network']['active'] == 'True': networks_activated = True else: networks_was_activated = False if network_type == 'v4': equipments_ipv4.extend( list_equipment_by_network_ip4(client, id_net)) client.create_api_network_ipv4().deploy(id_net) else: equipments_ipv6.extend( list_equipment_by_network_ip6(client, id_net)) client.create_api_network_ipv6().deploy(id_net) apply_acl_for_network_v4( request, client, equipments_ipv4, vlan, environment) apply_acl_for_network_v6( request, client, equipments_ipv6, vlan, environment) if networks_activated is True: messages.add_message( request, messages.ERROR, network_ip_messages.get("networks_activated")) if networks_was_activated is False: messages.add_message( request, messages.SUCCESS, network_ip_messages.get("net_create_success")) else: vlan = client.create_vlan().get(id_vlan) if vlan['vlan']['ativada'] == 'True': messages.add_message( request, messages.ERROR, error_messages.get("vlan_select_one")) else: messages.add_message( request, messages.ERROR, error_messages.get("select_one")) except VlanNaoExisteError, e: logger.error(e) return redirect('vlan.search.list')
def delete_all_network(request, id_vlan='0', sf_number='0', sf_name='0', sf_environment='0', sf_nettype='0', sf_subnet='0', sf_ipversion='0', sf_network='0', sf_iexact='0', sf_acl='0'): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) client_network = auth.get_clientFactory().create_network() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) # Control others exceptions have_errors = False error_list = list() # For each networks selected to remove for value in ids: try: var = split_to_array(value, sep='-') id_network = var[0] network = var[1] # Execute in NetworkAPI if network == NETWORK_TYPES.v4: client_network.deallocate_network_ipv4(id_network) else: client_network.deallocate_network_ipv6(id_network) except VipIpError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True error_list.append(id_network) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True error_list.append(id_network) # If all has ben removed if have_errors is False: messages.add_message( request, messages.SUCCESS, vlan_messages.get("success_remove_network")) else: if len(ids) == len(error_list): messages.add_message( request, messages.ERROR, error_messages.get("can_not_remove_error")) else: 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)
except NetworkAPIClientError, e: logger.error(e) error_list.append(id_vlan) messages.add_message(request, messages.ERROR, e) have_errors = True # If all has ben removed if have_errors is False: messages.add_message( request, messages.SUCCESS, vlan_messages.get("success_remove")) else: if len(ids) == len(error_list): messages.add_message( request, messages.ERROR, error_messages.get("can_not_remove_error")) else: 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) else: messages.add_message( request, messages.ERROR, error_messages.get("select_one")) # Redirect to list_all action return redirect('vlan.search.list') # return HttpResponseRedirect(reverse('vlan.search.list', args=["1", sf_number, sf_name, sf_environment, sf_nettype, sf_subnet, sf_ipversion, sf_network, sf_iexact, sf_acl]))
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"))
messages.add_message(request, messages.WARNING, msg) # If all has ben removed elif have_errors == False: messages.add_message(request, messages.SUCCESS, script_messages.get("success_remove")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error")) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one")) # Redirect to list_all action return redirect("script.list") @log @login_required @has_perm([{"permission": SCRIPT_MANAGEMENT, "read": True, "write": True}]) def add_form(request): try: # Get user auth = AuthSession(request.session) client = auth.get_clientFactory()
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, script_messages.get("success_remove")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error")) else: messages.add_message( request, messages.ERROR, error_messages.get("select_one")) # Redirect to list_all action return redirect("script.list") @log @login_required @has_perm([{"permission": SCRIPT_MANAGEMENT, "read": True, "write": True}]) def add_form(request): try: # Get user auth = AuthSession(request.session) client = auth.get_clientFactory()
def delete_perm(request, id_ugroup): if request.method == 'POST': form = DeleteFormAux(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) client_perm = auth.get_clientFactory( ).create_permissao_administrativa() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids_aux']) # All messages to display error_list = list() # Control others exceptions have_errors = False # For each perms selected to remove for id_perm in ids: try: # Execute in NetworkAPI client_perm.remover(id_perm) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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 is False: messages.add_message( request, messages.SUCCESS, perm_group_messages.get("success_remove")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error")) else: messages.add_message( request, messages.ERROR, error_messages.get("select_one"))
equip_nam = equip_name # Get user auth = AuthSession(request.session) client = auth.get_clientFactory() # Control others exceptions have_errors = False try: if int(is_channel): client.create_api_interface_request().deploy_channel_config_sync(ids) else: client.create_api_interface_request().deploy_interface_config_sync(ids) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True # If all has ben removed if have_errors == False: messages.add_message(request, messages.SUCCESS, equip_interface_messages.get("success_sync")) else: messages.add_message(request, messages.WARNING, error_messages.get("can_not_sync_error")) url_list = '/interface/?search_equipment=%s' % equip_name url_edit = request.META.get('HTTP_REFERER') if request.META.get('HTTP_REFERER') else reverse(url_list) return HttpResponseRedirect(url_edit)
def delete(request): try: if request.method == 'POST': form = DeleteForm(request.POST) id_equip = request.POST['equip_id'] flag = False if form.is_valid(): # Get user auth = AuthSession(request.session) equipamento_acesso = auth.get_clientFactory( ).create_equipamento_acesso() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) # All messages to display error_list = list() # Control others exceptions have_errors = False # return with list with equip # For each script selected to remove for id_equip_access in ids: try: # Execute in NetworkAPI equip_access = equipamento_acesso.get_access( id_equip_access) equip_access = equip_access.get('equipamento_acesso') equipamento_acesso.remover( equip_access.get('tipo_acesso'), id_equip) except EquipamentoError, e: # If isnt possible, add in error list error_list.append(id_equip_access) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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: if not flag: flag = True messages.add_message( request, messages.SUCCESS, equip_access_messages.get("success_remove")) else: messages.add_message( request, messages.ERROR, error_messages.get("select_one"))
def rule_remove(request, id_env): # Get User auth = AuthSession(request.session) client = auth.get_clientFactory() try: if request.method == "POST": form = DeleteForm(request.POST) if form.is_valid(): # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) # All messages to display error_list = list() # Control others exceptions have_errors = False # For each script selected to remove for id_rule in ids: try: # Execute in NetworkAPI client.create_ambiente().delete_rule(id_rule) except NetworkAPIClientError, e: logger.error(e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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, rule_messages.get("success_remove")) else: messages.add_message( request, messages.ERROR, error_messages.get("can_not_remove_error")) else: messages.add_message( request, messages.ERROR, error_messages.get("select_one")) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e)
def delete_all(request): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) roteiro = auth.get_clientFactory().create_roteiro() # All ids to be deleted ids = split_to_array(form.cleaned_data['ids']) # All messages to display error_list = list() # Control others exceptions have_errors = False # For each script selected to remove for id_script in ids: try: # Execute in NetworkAPI roteiro.remover(id_script) except RoteiroError, e: # If isnt possible, add in error list error_list.append(id_script) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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, script_messages.get("success_remove")) else: messages.add_message( request, messages.SUCCESS, error_messages.get("can_not_remove_error"))
def delete_all(request): if request.method == 'POST': form = DeleteForm(request.POST) if form.is_valid(): # Get user auth = AuthSession(request.session) client_user = auth.get_clientFactory().create_usuario() # All ids to be deleted ids = 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 id_user in ids: try: # Execute in NetworkAPI user = client_user.get_by_id(id_user).get('usuario') client_user.alterar(user.get("id"), user.get("user"), user.get( "pwd"), user.get('nome'), 0, user.get('email'), user.get('user_ldap')) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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, user_messages.get("success_remove")) else: messages.add_message( request, messages.ERROR, error_messages.get("can_not_remove_error")) else: messages.add_message( request, messages.ERROR, error_messages.get("select_one"))
# Execute in NetworkAPI client_equip.remover(id_equip) except EquipamentoError, e: error_list.append(id_equip) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) have_errors = True break # If cant remove nothing if len(error_list) == len(ids): 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 is False: messages.add_message( request, messages.SUCCESS, equip_messages.get('success_remove'))
def apply_acl(request, id_vlan, network): lists = dict() lists['id_vlan'] = id_vlan lists['form'] = DeleteForm() try: # Get user auth = AuthSession(request.session) client = auth.get_clientFactory() vlan = client.create_vlan().get(id_vlan).get("vlan") environment = client.create_ambiente().buscar_por_id( vlan.get("ambiente")).get("ambiente") key_acl = acl_key(network) if vlan.get(key_acl) is None: messages.add_message(request, messages.ERROR, acl_messages.get("error_acl_not_exist")) return HttpResponseRedirect( reverse('vlan.edit.by.id', args=[id_vlan])) lists['vlan'] = vlan lists['environment'] = "%s - %s - %s" % ( environment.get("nome_divisao"), environment.get("nome_ambiente_logico"), environment.get("nome_grupo_l3")) # Type Network lists['network'] = network if request.method == "POST": form = DeleteForm(request.POST) if form.is_valid(): client_equip = client.create_equipamento() # All ids to be apply ids = split_to_array(form.cleaned_data['ids']) equipments = [] for _id in ids: try: equip = client_equip.listar_por_id(_id) equipments.append(equip) except NetworkAPIClientError, e: logger.error(e) messages.add_message(request, messages.ERROR, e) if equipments is not None and equipments != "": #is_apply, result = applyAcl(equipments, vlan, environment, network, AuthSession(request.session).get_user()) apply_result = client.create_vlan().apply_acl( equipments, vlan, environment, network) is_apply = apply_result.get('is_apply') result = apply_result.get('result') if is_apply == '0': lists['result'] = result messages.add_message(request, messages.SUCCESS, acl_messages.get("success_apply")) return render_to_response( ACL_APPLY_RESULT, lists, context_instance=RequestContext(request)) else: messages.add_message(request, messages.ERROR, acl_messages.get("error_apply")) else: messages.add_message(request, messages.ERROR, error_messages.get("select_one")) list_equipments = [] if len(vlan["redeipv4"]) > 0 and network == NETWORK_TYPES.v4: for net in vlan["redeipv4"]: try: ips = client.create_ip().find_ip4_by_network( net["id"]).get('ips') for ip in ips: equipment = {} equipment["description"] = ip["descricao"] equipment["ip"] = "%s.%s.%s.%s" % ( ip["oct1"], ip["oct2"], ip["oct3"], ip["oct4"]) equips = validates_dict(ip, "equipamento") for equip in equips: equipment_base = clone(equipment) equipment_base["id"] = equip["id"] equipment_base["name"] = equip["nome"] list_equipments.append(equipment_base) except (NetworkAPIClientError, Exception), e: pass
def generate_token(request): try: lists = {} form = forms.GenerateTokenForm( request.POST) if request.method == 'POST' else forms.GenerateTokenForm() if form.is_valid(): user_ldap_ass = "" user = str(form.cleaned_data['user']) idt = None if not form.cleaned_data[ 'requestVip'] else form.cleaned_data['requestVip'] ttl = ACCESS_EXTERNAL_TTL if not form.cleaned_data[ 'p'] else form.cleaned_data['p'] # Login with LDAP if form.cleaned_data['is_ldap_user']: username_ldap, password_ldap = str(user).split("@") try: user_ldap = Ldap("").get_user(username_ldap) except LDAPNotFoundError, e: raise Exception(auth_messages.get("user_ldap_not_found")) pwd_ldap = user_ldap['userPassword'] activate = user_ldap.get('nsaccountlock') pwd = password_ldap if re.match("\{(MD|md)5\}.*", pwd_ldap, 0): pwd = base64.b64encode(hashlib.md5(pwd).digest()) pwd_ldap = pwd_ldap[pwd_ldap.index("}") + 1:] if pwd == pwd_ldap and (activate is None or activate.upper() == 'FALSE'): # Valid User client, client_user = facade.validate_user_networkapi( user, form.cleaned_data['is_ldap_user']) user_ldap_client = client_user.get('user') user_ldap_ass = user_ldap_client['user_ldap'] else: client_user = None else: # Valid User client, client_user = facade.validate_user_networkapi( user, form.cleaned_data['is_ldap_user']) # Valid User if client_user is None: raise UserNotAuthenticatedError("user_invalid") else: # Valid idt if idt is not None and not is_valid_int_param(idt): raise Exception( error_messages.get("invalid_param") % "requestVip") # Valid ttl if not is_valid_int_param(ttl): raise Exception(error_messages.get("invalid_param") % "p") if idt is not None: client.create_vip().get_by_id(idt) # Encrypt hash user_hash = Encryption().Encrypt(user + "@" + str(user_ldap_ass)) # Get Authenticate User authenticate_user = client_user.get('user') # Get Permissions by Authenticate User permissions = authenticate_user and authenticate_user.get('permission') # Generates token key = "%s:%s:%s" % (__name__, str(user), str(strftime("%Y%m%d%H%M%S"))) token = hashlib.sha1(key).hexdigest() data_to_cache = {"user_hash": user_hash, "permissions": permissions} # Set token in cache cache.set(token, data_to_cache, int(ttl)) lists["token"] = token if idt is not None: lists["url"] = reverse("vip-request.edit.external", args=[idt]) else: lists["url"] = reverse("vip-request.form.external") return render_to_response(templates.VIPREQUEST_TOKEN, lists, context_instance=RequestContext(request)) except InvalidParameterError, e: logger.error(e) lists["error"] = error_messages.get("invalid_param") % "id"