# HG changeset patch # User Matthias Förste # Date 1487943118 -3600 # Node ID 63b7c7fcd0cbc9f52bc0a330f78d5c9a4b46c1f3 # Parent b82a656f784e05a11712853ca9a12c7b38cf0c8e Passwort Erzeugung: längere pw; unbenutzte Code Fragmente entfernt; duplizierten Code zentralisiert diff -r b82a656f784e -r 63b7c7fcd0cb Common.pm --- a/Common.pm Tue Apr 14 14:47:51 2015 +0200 +++ b/Common.pm Fri Feb 24 14:31:58 2017 +0100 @@ -91,4 +91,21 @@ ); +{ + my @pw; + + sub mkpw($) { + my $in = $_[0]; + + return $in unless $in and $in eq "{pwgen}"; + + if ( !@pw ) { + chomp( @pw = `pwgen -nc 12 1 2>/dev/null` ); + die "pwgen: $!" if $?; + } + return shift @pw; + + } +} + 1; diff -r b82a656f784e -r 63b7c7fcd0cb account.pm --- a/account.pm Tue Apr 14 14:47:51 2015 +0200 +++ b/account.pm Fri Feb 24 14:31:58 2017 +0100 @@ -14,6 +14,7 @@ use Mail::IMAPTalk; use Text::Wrap; use password; +use Common; my $Cf; my ( $ldap, $ubase, $abase ); @@ -23,7 +24,6 @@ sub _add(); sub _list(); sub _delete(); -sub _mkpw($); sub uniq(@); sub verbose(@); sub _mbox($); @@ -104,7 +104,7 @@ my $sn = ( reverse split " ", $cn )[0]; my $mailGroup = [ split /,/, $Cf->group || "" ]; my $mailForwardingAddress = [ split /,/, $Cf->forward || "" ]; - my $pw = _mkpw( $Cf->password || "{pwgen}" ); + my $pw = Common::mkpw( $Cf->password || "{pwgen}" ); my $mbox = _mbox($user); if ( $mailPrimaryAddress !~ /@/ ) { @@ -370,7 +370,7 @@ $modified++; } - if ( my $pw = _mkpw( $Cf->password ) ) { + if ( my $pw = Common::mkpw( $Cf->password ) ) { $e->replace( userPassword => $pw ); $modified++; } @@ -568,22 +568,7 @@ return keys %x; } -{ - my @pw; - sub _mkpw($) { - my $in = $_[0]; - - return $in unless $in and $in eq "{pwgen}"; - - if ( !@pw ) { - chomp( @pw = `pwgen 8 10 2>/dev/null` ); - die "pwgen: $!" if $?; - } - return shift @pw; - - } -} sub _mbox($) { diff -r b82a656f784e -r 63b7c7fcd0cb acl.pm --- a/acl.pm Tue Apr 14 14:47:51 2015 +0200 +++ b/acl.pm Fri Feb 24 14:31:58 2017 +0100 @@ -23,7 +23,6 @@ END { $imap and $imap = undef; } sub _list(); -sub _mkpw($); sub list_by_user($@); sub list_by_folder($); @@ -386,23 +385,6 @@ return keys %x; } -{ - my @pw; - - sub _mkpw($) { - my $in = $_[0]; - - return $in unless $in and $in eq "{pwgen}"; - - if ( !@pw ) { - chomp( @pw = `pwgen 8 10 2>/dev/null` ); - die "pwgen: $!" if $?; - } - return shift @pw; - - } -} - sub imap_list($$) { my ( $ref, $folder ) = @_; diff -r b82a656f784e -r 63b7c7fcd0cb group.pm --- a/group.pm Tue Apr 14 14:47:51 2015 +0200 +++ b/group.pm Fri Feb 24 14:31:58 2017 +0100 @@ -303,23 +303,6 @@ return keys %x; } -{ - my @pw; - - sub _mkpw($) { - my $in = $_[0]; - - return $in unless $in and $in eq "{pwgen}"; - - if ( !@pw ) { - chomp( @pw = `pwgen 8 10 2>/dev/null|| mkpasswd` ); - die "pwgen/mkpasswd: $!" if $?; - } - return shift @pw; - - } -} - 1; # vim:sts=4 sw=4 aw ai sm nohlsearch: diff -r b82a656f784e -r 63b7c7fcd0cb shared.pm --- a/shared.pm Tue Apr 14 14:47:51 2015 +0200 +++ b/shared.pm Fri Feb 24 14:31:58 2017 +0100 @@ -14,6 +14,7 @@ #use Cyrus::IMAP::Admin; use Text::Wrap; use password; +use Common; my $Cf; my ( $ldap, $ubase, $abase ); @@ -204,7 +205,7 @@ $modified++; } - if ( my $pw = _mkpw( $Cf->password ) ) { + if ( my $pw = Common::mkpw( $Cf->password ) ) { $e->replace( userPassword => $pw ); $modified++; } @@ -298,23 +299,6 @@ return keys %x; } -{ - my @pw; - - sub _mkpw($) { - my $in = $_[0]; - - return $in unless $in and $in eq "{pwgen}"; - - if ( !@pw ) { - chomp( @pw = `pwgen 8 10 2>/dev/null|| mkpasswd` ); - die "pwgen/mkpasswd: $!" if $?; - } - return shift @pw; - - } -} - 1; # vim:sts=4 sw=4 aw ai sm nohlsearch: