Passwort Erzeugung: längere pw; unbenutzte Code Fragmente entfernt; duplizierten Code zentralisiert foerste-hhsp tip
authorMatthias Förste <foerste@schlittermann.de>
Fri, 24 Feb 2017 14:31:58 +0100
branchfoerste-hhsp
changeset 75 63b7c7fcd0cb
parent 74 b82a656f784e
Passwort Erzeugung: längere pw; unbenutzte Code Fragmente entfernt; duplizierten Code zentralisiert
Common.pm
account.pm
acl.pm
group.pm
shared.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;
--- 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: