Hello,

In Brazil we've got a form of Social Security number called "CPF". We
received some code from another place that uses PacketFence as NAC
solution, but they were in version ~ 6.
The code validates CPF within the Authentication.pm file, as following:

[...]

use strict;
use va
rs qw($VCPF $CPF $t $d $c);

[Just some regular stuff from PacketFence...]

my %skip = (
email => 1,
telephone => 1,
custom_field_1 => 1,
map { $_ => 1 } @pf::person::NON_PROMPTABLE_FIELDS,
);
[...] (The following is in a single line)
has_field 'fields[custom_field_1]' => (label => 'CPF', apply => [{ check =>
qr/^\d{11}$/, message => 'CPF deve conter apenas dígitos, sem pontos ou
hífens'
}], validate_method => \&check_cpf);
[...]
=head2 check_cpf

Check that the CPF is a valid one

=cut

sub check_cpf {
my ($self) = @_;
    my $VCPF = 1;
    my $CPF;
    $CPF = shift;
    if ($CPF == '00000000000' ||
$CPF == '11111111111' ||
$CPF == '22222222222' ||
$CPF == '33333333333' ||
$CPF == '44444444444' ||
$CPF == '55555555555' ||
$CPF == '66666666666' ||
$CPF == '77777777777' ||
$CPF == '88888888888' ||
$CPF == '99999999999') {
        $self->add_error("CPI inválido.");
        return $self->form->app->flash->{error} = "CPI inválido.";
        }
    else {
        for ($t = 9; $t < 11; $t++) {

            for ($d = 0, $c = 0; $c < $t; $c++) {
                $d = $d + substr($CPF,$c,1) * (($t + 1) - $c);
            }
            $d = ((10 * $d) % 11) % 10;
            if (substr($CPF,$c,1) != $d) {
                $self->add_error("CPI inválido.");
                return $self->form->app->flash->{error} = "CPI inválido.";
                }
            }
        }
}


Unfortunately this is throwing some erros in httpd.portal.error, I believe
it has something to do on how the variable $CPF is being populated.

Sep  3 09:47:10 prometeu httpd_portal_err: Argument "H" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "T" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "M" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "L" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument ":" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument ":" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "F" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "o" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "r" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "m" isn't numeric
in numeric ne (!=) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 213.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "H" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "T" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "M" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "L" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument ":" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument ":" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "F" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "o" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "r" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "m" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "H" isn't numeric
in numeric ne (!=) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 213.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "H" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "T" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "M" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "L" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument ":" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument ":" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "F" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "o" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "r" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "m" isn't numeric
in numeric ne (!=) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 213.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "H" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "T" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "M" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "L" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument ":" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument ":" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "F" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "o" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "r" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "m" isn't numeric
in multiplication (*) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 210.
Sep  3 09:47:10 prometeu httpd_portal_err: Argument "H" isn't numeric
in numeric ne (!=) at
/usr/local/pf/lib/captiveportal/PacketFence/Form/Authentication.pm
line 213.


Could you guys provide me some help regarding this?

Best Regards,


Murilo Calegari de Souza
Estagiário da TI
Coordenadoria de Tecnologia da Informação
Instituto Federal do Espírito Santo – Campus Nova Venécia
27 3752 4311 ramal 43112

--
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
PacketFence-users mailing list
PacketFence-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/packetfence-users

Reply via email to