Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ldap_NS.pl 137.97 KiB
#!/usr/bin/perl -T

#
use strict;
use warnings FATAL => 'all';
use diagnostics;

use Data::Dumper;
use Config::IniFiles;
use File::Basename;

use Net::LDAP;

use CGI;
use CGI::Ajax;
use CGI::Cookie;
use CGI::FormBuilder;
use CGI::Session::ID::md5;
use CGI::Session qw/-ip_match/;
use CGI::Untaint;
use HTML::Template;

use Crypt::CBC;
use Crypt::Blowfish;
use Crypt::SmbHash;
use MIME::Base64;
use DateTime;

use lib ( new Config::IniFiles( -file => "/opt/etc/ini/global.ini" )->val( 'APPLICATION', 'LIBRARY' ) );

use SNET::access;
use SNET::common;
use SNET::html;
use SNET::ActiveDirectory;
use SNET::LdapNS qw(:all);

use Net::LDAP::Constant qw(
  LDAP_CONTROL_PASSWORDPOLICY
  LDAP_PP_PASSWORD_EXPIRED
  LDAP_PP_ACCOUNT_LOCKED
  LDAP_PP_CHANGE_AFTER_RESET
);

use SNET::Magic::MagicHash;

my $ldap_snmc;

my $homepage    = '/cgi-bin/auth/ldap_NS.pl';
my $sessiondir  = '/var/tmp/www-data/ldapns';
my $templatedir = '/opt/auth/cgi-bin/templates';

my ( $cgi, $params, $error, $message, $sid, $session, $key );
my ( $connected, $isAdmin, $userMustChange, $audit_user );
my $debug;

my $LOGIN;
my ( $TAB_HOME, $INFO, $PASSWD, $EXPIRED );
my ( $TAB_USERS, $USERINFOS, $DELUSER, $ADDUSER, $ADDUSERPROFILE, $MODUSER, $RESET );
my ( $TAB_GROUPS, $GROUPINFOS,  $DELGROUP,  $ADDGROUP,  $MODGROUP );
my ( $TAB_POLICY, $POLICYINFOS, $DELPOLICY, $ADDPOLICY, $MODPOLICY );

sub reconnect_ldap_snmc;
sub refresh_posixGroups;
sub refresh_userInfos;
sub reset_tab_actions;
sub display_passwd;

# used by check_remote_infos
my $authorized_ip = [qw(158.167.133.90 158.166.133.90 158.166.133.6 158.167.133.6 158.166.164.6 158.167.134.6 10.219.40.120 10.215.40.120)];