Author: jsuchome Date: Mon Jul 23 15:15:04 2007 New Revision: 39600 URL: http://svn.opensuse.org/viewcvs/yast?rev=39600&view=rev Log: better/correct check if data in plugin were modified Modified: trunk/users/src/Users.pm trunk/users/src/UsersLDAP.pm trunk/users/src/UsersPluginQuota.pm trunk/users/src/users_plugin_quota.ycp Modified: trunk/users/src/Users.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/Users.pm?rev=39600&... ============================================================================== --- trunk/users/src/Users.pm (original) +++ trunk/users/src/Users.pm Mon Jul 23 15:15:04 2007 @@ -3300,6 +3300,40 @@ if (defined $user{"org_user"}) { %org_user = %{$user{"org_user"}}; } + if ($user{"type"} ne "ldap") { + # grouplist can be ignored, it is a modification of groups + while ( my ($key, $value) = each %org_user) { + last if $ret; + if ($key eq "grouplist") { + next; + } + if ($key eq "plugin_modified") { + $ret = 1; #TODO save special plugin_modified global value? + next; + } + if (defined $user{$key} && + (ref ($value) eq "YaST::YCP::Boolean" && + ref ($user{$key}) eq "YaST::YCP::Boolean") || + (ref ($value) eq "YaST::YCP::Integer" && + ref ($user{$key}) eq "YaST::YCP::Integer")) + { + if ($user{$key}->value() != $value->value()) + { + $ret = 1; + y2milestone ("old value: ", $value->value()); + y2milestone ("changed to: ", $user{$key}->value()); + } + next; + } + if (!defined $user{$key} || $user{$key} ne $value) + { + $ret = 1; + y2debug ("old value: ", $value || "(not defined)"); + y2debug ("... changed to: ", $user{$key} || "(not defined)" ); + } + } + return $ret; + } my @internal_keys = @{UsersLDAP->GetUserInternal ()}; foreach my $key (keys %user) { last if $ret; @@ -3308,10 +3342,8 @@ ref ($value) eq "HASH" ) { next; } - if ($key eq "quota" && ref ($value) eq "ARRAY") { - foreach my $qmap (@$value) { - $ret = 1 if exists $qmap->{"quota_modified"}; - } + if ($key eq "plugin_modified") { + $ret = 1; } elsif (!defined ($org_user{$key})) { if ($value ne "") { Modified: trunk/users/src/UsersLDAP.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/UsersLDAP.pm?rev=39600&... ============================================================================== --- trunk/users/src/UsersLDAP.pm (original) +++ trunk/users/src/UsersLDAP.pm Mon Jul 23 15:15:04 2007 @@ -115,7 +115,7 @@ my @user_internal_keys = ("create_home", "grouplist", "groupname", "modified", "org_username", "org_uid", "plugins", "text_userpassword", "current_text_userpassword", - "plugins_to_remove", + "plugins_to_remove", "plugin_modified", "org_uidnumber", "org_homedirectory","org_user", "type", "org_groupname", "org_type", "what", "encrypted", "no_skeleton", "disabled", "enabled", "dn", "org_dn", "removed_grouplist", "delete_home", "addit_data", @@ -126,7 +126,8 @@ ("modified", "type", "more_users", "s_userlist", "encrypted", "org_type", "dn", "org_dn", "org_groupname", "org_gidnumber", "removed_userlist", "what", "org_cn", "plugins", "plugins_to_remove", "org_group", - "warning_message", "warning_message_ID", "confirmed_warnings"); + "warning_message", "warning_message_ID", "confirmed_warnings", + "plugin_modified"); # defualt scope for searching, set it by SetUserScope Modified: trunk/users/src/UsersPluginQuota.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/UsersPluginQuota.pm?rev... ============================================================================== --- trunk/users/src/UsersPluginQuota.pm (original) +++ trunk/users/src/UsersPluginQuota.pm Mon Jul 23 15:15:04 2007 @@ -74,10 +74,10 @@ my $i = 0; foreach my $qmap (@{$data->{"quota"}}) { $data->{"quota"}[$i]{$key} = 0 if defined $data->{"quota"}[$i]{$key}; - $data->{"quota"}[$i]{"quota_modified"} = 1; $i = $i + 1; } } + $data->{"plugin_modified"} = 1; return $data; } Modified: trunk/users/src/users_plugin_quota.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/users_plugin_quota.ycp?... ============================================================================== --- trunk/users/src/users_plugin_quota.ycp (original) +++ trunk/users/src/users_plugin_quota.ycp Mon Jul 23 15:15:04 2007 @@ -141,7 +141,7 @@ _("<p>If group exceedes the softlimit quota, widgets with the time setting are enabled. Adjust the grace time for group by setting the time in those widgets.</p>"); } - boolean modified = false; + boolean modified = data["plugin_modified"]:0 == 1; integer current = 0; // current fs (index in the list) list<map> current_quota = data["quota"]:[]; @@ -177,11 +177,6 @@ fixed["quota_blocks_grace_exceeded"] = 1; if (haskey (q, "quota_inodes_grace_exceeded")) fixed["quota_inodes_grace_exceeded"] = 1; - if (haskey (q, "quota_modified")) - { - modified = true; - fixed["quota_modified"] = true; - } quota_list = add (quota_list, fixed); return `item (`id (i), fs, i == current); }); @@ -325,11 +320,10 @@ integer i = 0; foreach (map qmap, quota_list, { foreach (string key, any val, (map<string,any>) qmap, { - if (key == "quota_fs" || key == "quota_modified")return; + if (key == "quota_fs") return; if (sformat ("%1", val) != tostring (current_quota[i,key]:"0")) { - quota_list[i,"quota_modified"] = true; modified = true; } }); @@ -339,7 +333,10 @@ break; // modified data to add to user/group - map<string, any> tmp_data = $[ "quota" : quota_list ]; + map<string, any> tmp_data = $[ + "quota" : quota_list, + "plugin_modified" : 1, + ]; // if this plugin wasn't in default set, we must save its name // (this is probably obsolete, users module should take care) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org