Passwort Erzeugung: längere pw; unbenutzte Code Fragmente entfernt; duplizierten Code zentralisiert
--- 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;
--- 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($) {
--- 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 ) = @_;
--- 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:
--- 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: