Author: jsuchome Date: Thu May 24 16:13:21 2007 New Revision: 38131 URL: http://svn.opensuse.org/viewcvs/yast?rev=38131&view=rev Log: - check for crypted directories modifications before offering 'cryptconfig' installation (#274861) - 2.15.28 Modified: trunk/users/VERSION trunk/users/package/yast2-users.changes trunk/users/src/Users.pm trunk/users/src/UsersRoutines.pm Modified: trunk/users/VERSION URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/VERSION?rev=38131&r1=38130&r2=38131&view=diff ============================================================================== --- trunk/users/VERSION (original) +++ trunk/users/VERSION Thu May 24 16:13:21 2007 @@ -1 +1 @@ -2.15.27 +2.15.28 Modified: trunk/users/package/yast2-users.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/package/yast2-users.changes?rev=38131&r1=38130&r2=38131&view=diff ============================================================================== --- trunk/users/package/yast2-users.changes (original) +++ trunk/users/package/yast2-users.changes Thu May 24 16:13:21 2007 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Thu May 24 15:58:42 CEST 2007 - jsuchome@suse.cz + +- check for crypted directories modifications before offering + 'cryptconfig' installation (#274861) +- 2.15.28 + +------------------------------------------------------------------- Wed May 23 09:55:46 CEST 2007 - jsuchome@suse.cz - use LDAPInitWithTLSCheck function for init - offer fallback to Modified: trunk/users/src/Users.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/Users.pm?rev=38131&r1=38130&r2=38131&view=diff ============================================================================== --- trunk/users/src/Users.pm (original) +++ trunk/users/src/Users.pm Thu May 24 16:13:21 2007 @@ -3324,8 +3324,8 @@ if (!defined $user{$key} || $user{$key} ne $value) { $ret = 1; - y2debug ("old value: $value, changed to: ", - $user{$key} || "-" ); + y2debug ("old value: ", $value || "(not defined)"); + y2debug ("... changed to: ", $user{$key} || "(not defined)" ); } } return $ret; @@ -3367,6 +3367,29 @@ return $ret; } +# take the map of user and check if his crypted directory settings were modified +# return boolean +sub CryptedHomeModified { + + my $self = shift; + my $user = shift; + + my $username = $user->{"uid"} || ""; + my $org_username = $user->{"org_user"}{"uid"} || $username; + my $home = $user->{"homedirectory"} || ""; + my $org_home = $user->{"org_user"}{"homedirectory"} || $home; + my $home_size = $user->{"crypted_home_size"} || 0; + my $org_size = $user->{"org_user"}{"crypted_home_size"} || 0; + my $pw = $user->{"current_text_userpassword"}; + my $new_pw = $user->{"text_userpassword"}; + + return 0 if ($home_size == 0 && $org_size == 0); # nothing to do + return 0 if ($home eq $org_home && $username eq $org_username && $home_size == $org_size && $pw eq $new_pw); + return 0 if !defined $pw; # no change without password provided :-( + return 1; +} + + # Substitute the values of LDAP atributes, predefined in LDAP user configuration BEGIN { $TYPEINFO{SubstituteUserValues} = ["function", "void"] } sub SubstituteUserValues { @@ -4181,7 +4204,7 @@ # only remember for which users we need to call cryptconfig foreach my $username (keys %{$modified_users{"ldap"}}) { my %user = %{$modified_users{"ldap"}{$username}}; - if (defined $user{"crypted_home_size"}) { + if (defined $user{"crypted_home_size"} && $self->CryptedHomeModified (\%user)) { $users_with_crypted_dir{$username} = \%user; } } @@ -4380,7 +4403,7 @@ my $gid = $user{"gidnumber"}; my $create_home = $user{"create_home"}; my $skel = $useradd_defaults{"skel"}; - if (defined $user{"crypted_home_size"}) { + if (defined $user{"crypted_home_size"} && $self->CryptedHomeModified (\%user)) { $users_with_crypted_dir{$username} = \%user; } if ($user_mod eq "imported" || $user_mod eq "added") { Modified: trunk/users/src/UsersRoutines.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/UsersRoutines.pm?rev=38131&r1=38130&r2=38131&view=diff ============================================================================== --- trunk/users/src/UsersRoutines.pm (original) +++ trunk/users/src/UsersRoutines.pm Thu May 24 16:13:21 2007 @@ -296,10 +296,6 @@ if ($modified eq "added" && !defined $pw) { $pw = $new_pw; } - return 1 if ($home_size == 0 && $org_size == 0); # nothing to do - return 1 if ($home eq $org_home && $username eq $org_username && $home_size == $org_size && $pw eq $new_pw); - return 0 if !defined $pw; # no change without password provided :-( - # now crypt the home directories my $tmpdir = Directory->tmpdir (); -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org