Exemplo n.º 1
0
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"))
Exemplo n.º 2
0
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"))
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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'))
Exemplo n.º 5
0
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")
Exemplo n.º 6
0
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"))
Exemplo n.º 7
0
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"))
Exemplo n.º 8
0
    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
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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"))
Exemplo n.º 11
0
    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
Exemplo n.º 12
0
    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 _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)
Exemplo n.º 14
0
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)
Exemplo n.º 15
0
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')
Exemplo n.º 16
0
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')
Exemplo n.º 17
0
                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)
Exemplo n.º 18
0
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"))
Exemplo n.º 19
0
@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}])
Exemplo n.º 20
0
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"
Exemplo n.º 21
0
            # 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'))
Exemplo n.º 22
0
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"))
Exemplo n.º 23
0
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"))
Exemplo n.º 24
0
@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):
Exemplo n.º 25
0
@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)
Exemplo n.º 26
0
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')
Exemplo n.º 27
0
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)
Exemplo n.º 28
0
                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]))
Exemplo n.º 29
0
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"))
Exemplo n.º 30
0
                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()
Exemplo n.º 31
0
                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()
Exemplo n.º 32
0
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"))
Exemplo n.º 33
0
    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)
Exemplo n.º 34
0
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"))
Exemplo n.º 35
0
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)
Exemplo n.º 36
0
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"))
Exemplo n.º 37
0
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"))
Exemplo n.º 38
0
            # 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'))
Exemplo n.º 39
0
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
Exemplo n.º 40
0
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"))
Exemplo n.º 41
0
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"