Hello community,
here is the log from the commit of package yast2-users
checked in at Wed Apr 16 16:20:02 CEST 2008.
--------
--- yast2-users/yast2-users.changes 2008-04-14 16:06:14.000000000 +0200
+++ /mounts/work_src_done/STABLE/yast2-users/yast2-users.changes 2008-04-16 16:11:42.581675000 +0200
@@ -1,0 +2,13 @@
+Wed Apr 16 16:04:34 CEST 2008 - jsuchome@suse.cz
+
+- during 1st stage of installation import users only once
+- 2.16.27
+
+-------------------------------------------------------------------
+Wed Apr 16 14:31:03 CEST 2008 - jsuchome@suse.cz
+
+- changed behavior of Check functions: remember the accepted values
+- changing ownership of home directory now optional (bnc#308415)
+- 2.16.26
+
+-------------------------------------------------------------------
Old:
----
yast2-users-2.16.25.tar.bz2
New:
----
yast2-users-2.16.27.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-users.spec ++++++
--- /var/tmp/diff_new_pack.Q15903/_old 2008-04-16 16:19:04.000000000 +0200
+++ /var/tmp/diff_new_pack.Q15903/_new 2008-04-16 16:19:04.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package yast2-users (Version 2.16.25)
+# spec file for package yast2-users (Version 2.16.27)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -12,12 +12,12 @@
Name: yast2-users
-Version: 2.16.25
+Version: 2.16.27
Release: 1
License: GPL v2 or later
Group: System/YaST
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-users-2.16.25.tar.bz2
+Source0: yast2-users-2.16.27.tar.bz2
Prefix: /usr
BuildRequires: cracklib-devel doxygen gcc-c++ perl-Digest-SHA1 perl-XML-Writer update-desktop-files yast2 yast2-core-devel yast2-devtools yast2-ldap-client yast2-perl-bindings yast2-security yast2-testsuite
Requires: yast2-perl-bindings yast2-country yast2-pam yast2-security cracklib perl-Digest-SHA1 perl-X500-DN perl-gettext
@@ -46,7 +46,7 @@
Jiri Suchomel
%prep
-%setup -n yast2-users-2.16.25
+%setup -n yast2-users-2.16.27
%build
%{prefix}/bin/y2tool y2autoconf
@@ -89,6 +89,13 @@
%{_libdir}/YaST2/plugin/libpy2ag_crack.la
%doc %{prefix}/share/doc/packages/yast2-users
%changelog
+* Wed Apr 16 2008 jsuchome@suse.cz
+- during 1st stage of installation import users only once
+- 2.16.27
+* Wed Apr 16 2008 jsuchome@suse.cz
+- changed behavior of Check functions: remember the accepted values
+- changing ownership of home directory now optional (bnc#308415)
+- 2.16.26
* Mon Apr 14 2008 jsuchome@suse.cz
- use SystemFilesCopy::CopyFilesToSystem to acquire /etc/passwd
and /etc/shadow in the 1st stage (fate#302980)
++++++ yast2-users-2.16.25.tar.bz2 -> yast2-users-2.16.27.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/configure new/yast2-users-2.16.27/configure
--- old/yast2-users-2.16.25/configure 2008-04-14 15:56:48.000000000 +0200
+++ new/yast2-users-2.16.27/configure 2008-04-16 14:34:09.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for yast2-users 2.16.25.
+# Generated by GNU Autoconf 2.61 for yast2-users 2.16.26.
#
# Report bugs to http://bugs.opensuse.org/.
#
@@ -728,8 +728,8 @@
# Identity of this package.
PACKAGE_NAME='yast2-users'
PACKAGE_TARNAME='yast2-users'
-PACKAGE_VERSION='2.16.25'
-PACKAGE_STRING='yast2-users 2.16.25'
+PACKAGE_VERSION='2.16.26'
+PACKAGE_STRING='yast2-users 2.16.26'
PACKAGE_BUGREPORT='http://bugs.opensuse.org/'
ac_unique_file="RPMNAME"
@@ -1438,7 +1438,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures yast2-users 2.16.25 to adapt to many kinds of systems.
+\`configure' configures yast2-users 2.16.26 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1509,7 +1509,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of yast2-users 2.16.25:";;
+ short | recursive ) echo "Configuration of yast2-users 2.16.26:";;
esac
cat <<\_ACEOF
@@ -1615,7 +1615,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-yast2-users configure 2.16.25
+yast2-users configure 2.16.26
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1629,7 +1629,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by yast2-users $as_me 2.16.25, which was
+It was created by yast2-users $as_me 2.16.26, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2450,7 +2450,7 @@
# Define the identity of the package.
PACKAGE='yast2-users'
- VERSION='2.16.25'
+ VERSION='2.16.26'
cat >>confdefs.h <<_ACEOF
@@ -2678,7 +2678,7 @@
-VERSION="2.16.25"
+VERSION="2.16.26"
RPMNAME="yast2-users"
MAINTAINER="Jiri Suchomel "
@@ -21105,7 +21105,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by yast2-users $as_me 2.16.25, which was
+This file was extended by yast2-users $as_me 2.16.26, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21158,7 +21158,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-yast2-users config.status 2.16.25
+yast2-users config.status 2.16.26
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/configure.in new/yast2-users-2.16.27/configure.in
--- old/yast2-users-2.16.25/configure.in 2008-04-14 15:56:30.000000000 +0200
+++ new/yast2-users-2.16.27/configure.in 2008-04-16 14:33:57.000000000 +0200
@@ -3,7 +3,7 @@
dnl -- This file is generated by y2autoconf 2.16.8 - DO NOT EDIT! --
dnl (edit configure.in.in instead)
-AC_INIT(yast2-users, 2.16.25, http://bugs.opensuse.org/, yast2-users)
+AC_INIT(yast2-users, 2.16.26, http://bugs.opensuse.org/, yast2-users)
dnl Check for presence of file 'RPMNAME'
AC_CONFIG_SRCDIR([RPMNAME])
@@ -18,7 +18,7 @@
AM_INIT_AUTOMAKE(tar-ustar -Wno-portability)
dnl Important YaST2 variables
-VERSION="2.16.25"
+VERSION="2.16.26"
RPMNAME="yast2-users"
MAINTAINER="Jiri Suchomel "
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/src/dialogs.ycp new/yast2-users-2.16.27/src/dialogs.ycp
--- old/yast2-users-2.16.25/src/dialogs.ycp 2008-04-14 09:47:17.000000000 +0200
+++ new/yast2-users-2.16.27/src/dialogs.ycp 2008-04-16 16:09:15.000000000 +0200
@@ -5,7 +5,7 @@
* Authors: Johannes Buchhold ,
* Jiri Suchomel
*
- * $Id: dialogs.ycp 45922 2008-04-01 09:38:52Z jsuchome $
+ * $Id: dialogs.ycp 46742 2008-04-16 14:09:14Z jsuchome $
*/
{
@@ -145,7 +145,7 @@
map display_info = UI::GetDisplayInfo ();
boolean text_mode = display_info["TextMode"]:false;
-
+
mapuser = Users::GetCurrentUser ();
string error_msg = "";
@@ -220,6 +220,7 @@
}
boolean create_home = user["create_home"]:true;
+ boolean chown_home = user["chown_home"]:true;
boolean no_skel = user["no_skeleton"]:false;
boolean do_not_edit = (user_type == "nis");
boolean crypted_home_enabled=
@@ -297,13 +298,46 @@
givenname = user["givenname"]:SplitFullName(`givenname, cn);
}
- create_home = user["create_home"]:create_home;
+ chown_home = user["chown_home"]:chown_home;
no_skel = user["no_skeleton"]:no_skel;
groups = user["grouplist"]:$[];
do_not_edit = (user_type == "nis");
}
/**
+ * helper function: show a popup if existing home directory should be used
+ * and its ownership should be changed
+ */
+ map ask_chown_home (string dir, boolean chown_default) {
+
+ UI::OpenDialog (`opt(`decorated), `HBox(`HSpacing (1), `VBox (
+ `VSpacing (0.2),
+ // popup label, %1 is path to directory
+ `Label (sformat (_("The home directory (%1) already exists.
+Use it anyway?"), dir)),
+ `Left (
+ // checkbox label
+ `CheckBox (`id(`chown_home), _("&Change directory owner"),
+ chown_default)
+ ),
+ `HBox(
+ `PushButton (`id(`yes), `opt(`default), Label::YesButton()),
+ `PushButton (`id(`no), Label::NoButton())
+ ),
+ `VSpacing (0.2)
+ ), `HSpacing (1)));
+ any ui = UI::UserInput ();
+ map retmap = $[
+ "retval" : ui == `yes
+ ];
+ if (ui == `yes)
+ retmap["chown_home"] = UI::QueryWidget (`id (`chown_home),`Value);
+ UI::CloseDialog ();
+ return retmap;
+ }
+
+
+ /**
* generate contents for User Data Dialog
*/
define term get_edit_term () {
@@ -792,12 +826,13 @@
ret = `notnext;
}
+ // map with id's of confirmed questions
+ map ui_map = $[];
+
while (true)
{
// map returned from Check*UI functions
map error_map = $[];
- // map with id's of confirmed questions
- map ui_map = $[];
// error message
string error = "";
@@ -1006,7 +1041,7 @@
failed = true;
}
else
- ui_map[ error_map["question_id"]:"" ] = 1;
+ ui_map[ error_map["question_id"]:"" ] = pw1;
}
} while (error_map != $[] && !failed);
@@ -1067,10 +1102,25 @@
error_map = Users::CheckHomeUI (uid, home, ui_map);
if (error_map != $[])
{
- if (!Popup::YesNo (error_map ["question"]:""))
- failed = true;
+ if (error_map["question_id"]:"" == "chown" &&
+ !haskey (error_map, "owned"))
+ {
+ map ret = ask_chown_home (home, chown_home);
+ if (ret["retval"]:false)
+ {
+ ui_map["chown"] = home;
+ chown_home = ret["chown_home"]:chown_home;
+ }
+ else
+ failed = true;
+ }
else
- ui_map[ error_map["question_id"]:"" ] = 1;
+ {
+ if (!Popup::YesNo (error_map ["question"]:""))
+ failed = true;
+ else
+ ui_map[ error_map["question_id"]:"" ] = home;
+ }
}
} while (error_map != $[] && !failed);
@@ -1081,6 +1131,7 @@
}
}
user["homedirectory"] = home;
+ user["chown_home"] = chown_home;
// --------------------------------- username checks, part 2/2
if (what == "add_user" || username != org_username)
@@ -1219,19 +1270,33 @@
focus_tab (current, `uid);
continue;
}
- error_map = Users::CheckUIDUI (new_i_uid, ui_map);
- if (error_map != $[])
+ boolean failed = false;
+ do
{
- if (!Popup::YesNo (error_map ["question"]:""))
- {
- focus_tab (current, `uid);
- continue;
- }
- if(contains(["local","system"],error_map["question_id"]:""))
+ error_map = Users::CheckUIDUI (new_i_uid, ui_map);
+ if (error_map != $[])
{
- new_type = error_map["question_id"]:"local";
- UsersCache::SetUserType (new_type);
+ if (!Popup::YesNo (error_map ["question"]:""))
+ {
+ focus_tab (current, `uid);
+ failed = true;
+ }
+ else
+ {
+ ui_map[ error_map["question_id"]:"" ] = new_i_uid;
+ if(contains(["local","system"],
+ error_map["question_id"]:""))
+ {
+ new_type = error_map["question_id"]:"local";
+ UsersCache::SetUserType (new_type);
+ }
+ }
}
+ } while (error_map != $[] && !failed);
+ if (failed)
+ {
+ focus_tab (current, `uid);
+ continue;
}
} // end of uid checks
@@ -1259,10 +1324,25 @@
error_map = Users::CheckHomeUI(new_i_uid, new_home, ui_map);
if (error_map != $[])
{
- if (!Popup::YesNo (error_map ["question"]:""))
- failed = true;
+ if (error_map["question_id"]:"" == "chown" &&
+ !haskey (error_map, "owned"))
+ {
+ map ret = ask_chown_home (new_home, chown_home);
+ if (ret["retval"]:false)
+ {
+ ui_map["chown"] = new_home;
+ chown_home = ret["chown_home"]:chown_home;
+ }
+ else
+ failed = true;
+ }
else
- ui_map[ error_map["question_id"]:"" ] = 1;
+ {
+ if (!Popup::YesNo (error_map ["question"]:""))
+ failed = true;
+ else
+ ui_map[ error_map["question_id"]:""] = new_home;
+ }
}
} while (error_map != $[] && !failed);
@@ -1299,6 +1379,8 @@
focus_tab (current, `shell);
continue;
}
+ else
+ ui_map[ error_map["question_id"]:"" ] = new_shell;
}
// generate new map of groups (NIS groups were not shown!)
@@ -1322,7 +1404,10 @@
if (do_not_edit && !grouplist_modified && groups != new_groups)
grouplist_modified = true;
if (new_home == "/var/lib/nobody")
+ {
create_home = false;
+ chown_home = false;
+ }
if (UI::WidgetExists (`id (`move_home)) &&
UI::QueryWidget (`id (`move_home), `Value) == false)
create_home = false;
@@ -1341,6 +1426,7 @@
user["groupname"] = new_defaultgroup;
user["type"] = new_type;
user["create_home"] = create_home;
+ user["chown_home"] = chown_home;
user["addit_data"] = addit_data;
user["no_skeleton"] = no_skel;
user["home_mode"] = mode;
@@ -1921,7 +2007,7 @@
// map returned from Check*UI functions
map error_map = $[];
// map with id's of confirmed questions
- map ui_map = $[];
+ map ui_map = $[];
// error message
string error = "";
@@ -1997,7 +2083,7 @@
failed = true;
}
else
- ui_map[ error_map["question_id"]:"" ] = 1;
+ ui_map[ error_map["question_id"]:"" ] = pw1;
}
} while (error_map != $[] && !failed);
if (failed)
@@ -2020,19 +2106,32 @@
focus_tab (current, `gid);
continue;
}
- error_map = Users::CheckGIDUI (new_i_gid, ui_map);
- if (error_map != $[])
+ boolean failed = false;
+ do
{
- if (!Popup::YesNo (error_map ["question"]:""))
- {
- focus_tab (current, `gid);
- continue;
- }
- if(contains(["local","system"],error_map["question_id"]:""))
+ error_map = Users::CheckGIDUI (new_i_gid, ui_map);
+ if (error_map != $[])
{
- new_type = error_map["question_id"]:"local";
- UsersCache::SetGroupType (new_type);
+ if (!Popup::YesNo (error_map ["question"]:""))
+ {
+ failed = true;
+ }
+ else
+ {
+ ui_map[ error_map["question_id"]:"" ] = new_i_gid;
+ if(contains(["local","system"],
+ error_map["question_id"]:""))
+ {
+ new_type = error_map["question_id"]:"local";
+ UsersCache::SetGroupType (new_type);
+ }
+ }
}
+ } while (error_map != $[] && !failed);
+ if (failed)
+ {
+ focus_tab (current, `gid);
+ continue;
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/src/inst_root_first.ycp new/yast2-users-2.16.27/src/inst_root_first.ycp
--- old/yast2-users-2.16.25/src/inst_root_first.ycp 2008-04-14 09:47:17.000000000 +0200
+++ new/yast2-users-2.16.27/src/inst_root_first.ycp 2008-04-16 14:59:38.000000000 +0200
@@ -5,7 +5,7 @@
* Dialog for setting root's password during 1st stage of the installation
* Authors: Jiri Suchomel
*
- * $Id: inst_root_first.ycp 45888 2008-03-31 13:58:50Z jsuchome $
+ * $Id: inst_root_first.ycp 46731 2008-04-16 12:59:37Z jsuchome $
*/
{
textdomain "users";
@@ -157,7 +157,7 @@
// map returned from CheckPasswordUI functions
map error_map = $[];
// map with id's of confirmed questions
- map ui_map = $[];
+ map ui_map = $[];
boolean failed = false;
if (check_CA_constraints && (size (pw1) < pw_min_CA))
@@ -169,7 +169,7 @@
Really use this shorter password?"), pw_min_CA)))
{
// skip other checks for short passwords
- ui_map["short"] = 1;
+ ui_map["short"] = pw1;
}
else
{
@@ -189,7 +189,7 @@
if (!Popup::YesNo (error_map ["question"]:""))
failed = true;
else
- ui_map[ error_map["question_id"]:"" ] = 1;
+ ui_map[ error_map["question_id"]:"" ] = pw1;
}
} while (error_map != $[] && !failed);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/src/inst_root.ycp new/yast2-users-2.16.27/src/inst_root.ycp
--- old/yast2-users-2.16.25/src/inst_root.ycp 2008-04-14 09:47:17.000000000 +0200
+++ new/yast2-users-2.16.27/src/inst_root.ycp 2008-04-16 14:59:38.000000000 +0200
@@ -14,7 +14,7 @@
*
* Authors: Klaus K�mpf
*
- * $Id: inst_root.ycp 46383 2008-04-11 07:48:17Z jsuchome $
+ * $Id: inst_root.ycp 46731 2008-04-16 12:59:37Z jsuchome $
*/
{
textdomain "users";
@@ -198,7 +198,7 @@
// map returned from CheckPasswordUI functions
map error_map = $[];
// map with id's of confirmed questions
- map ui_map = $[];
+ map ui_map = $[];
boolean failed = false;
if (check_CA_constraints && (size (pw1) < pw_min_CA))
@@ -233,7 +233,7 @@
}
else
{
- ui_map[ error_map["question_id"]:"" ] = 1;
+ ui_map[ error_map["question_id"]:"" ] = pw1;
}
}
} while (error_map != $[] && !failed);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/src/inst_user_first.ycp new/yast2-users-2.16.27/src/inst_user_first.ycp
--- old/yast2-users-2.16.25/src/inst_user_first.ycp 2008-04-14 15:50:46.000000000 +0200
+++ new/yast2-users-2.16.27/src/inst_user_first.ycp 2008-04-16 16:11:14.000000000 +0200
@@ -4,12 +4,11 @@
* Summary: Dialog for creating the first user during installation
* Authors: Jiri Suchomel
*
- * $Id: inst_user_first.ycp 46421 2008-04-11 13:53:55Z jsuchome $
+ * $Id: inst_user_first.ycp 46743 2008-04-16 14:11:13Z jsuchome $
*/
{
import "Arch";
import "Directory";
- import "FileUtils";
import "GetInstArgs";
import "Label";
import "Mode";
@@ -20,7 +19,6 @@
import "Progress";
import "Report";
import "String";
- import "SystemFilesCopy";
import "UsersSimple";
import "Wizard";
@@ -37,8 +35,6 @@
// minimal pw length for CA-management (F#300438)
integer pw_min_CA = 4;
- // if importing users from different partition is possible
- boolean import_available = false;
// full info about imported users
map imported_users = $[];
// user names of imported users
@@ -46,31 +42,20 @@
// names of imported users selected for writing
list<string> to_import = [];
- string tmp_dir = Directory::tmpdir + "/users";
- SCR::Execute (.target.mkdir, tmp_dir);
- string import_dir = tmp_dir + Directory::vardir +"/imported/userdata/etc";
-
- if (SystemFilesCopy::CopyFilesToSystem (tmp_dir) &&
- FileUtils::Exists (import_dir + "/passwd") &&
- FileUtils::Exists (import_dir + "/shadow"))
- {
- import_available = true;
- }
+ // if importing users from different partition is possible
+ boolean import_available = UsersSimple::ImportAvailable ();
+
if (!GetInstArgs::going_back() && import_available)
{
- if (UsersSimple::ReadUserData (import_dir))
- {
- imported_users = (map)
- UsersSimple::GetImportedUsers ("local");
- user_names = maplist (string name, map u, imported_users,``(name));
- }
+ imported_users = (map)
+ UsersSimple::GetImportedUsers ("local");
+ user_names = maplist (string name, map u, imported_users,``(name));
if (size (user_names) < 1)
{
y2milestone ("No users to import");
import_available = false;
}
}
- SCR::Execute (.target.bash_output, sformat ("/bin/rm -rf %1", tmp_dir));
// helper function to se package for installation, together with
// architecture dependent version
@@ -538,20 +523,12 @@
(username != "" && UsersSimple::GetRootAlias () == username);
term fields = `VBox (
- /*
`InputField (`id (`cn), `opt (`notify, `hstretch),
// text entry
_("User's &Full Name"), cn),
`InputField (`id (`username), `opt (`notify, `hstretch),
// input field for login name
_("&Username"),username),
- */
- `TextEntry (`id (`cn), `opt (`notify, `hstretch),
- // text entry
- _("User's &Full Name"), cn),
- `TextEntry (`id (`username), `opt (`notify, `hstretch),
- // input field for login name
- _("&Username"),username),
`Password (`id (`pw1), `opt (`hstretch), Label::Password(),
password == nil ? "" : password),
`Password (`id (`pw2), `opt (`hstretch), Label::ConfirmPassword(),
@@ -644,7 +621,7 @@
// map returned from Check*UI functions
map error_map = $[];
// map with id's of confirmed questions
- map ui_map = $[];
+ map ui_map = $[];
// --------------------------------- username checks
username = (string) UI::QueryWidget (`id (`username), `Value);
if (username == "" || auth_method != "users")
@@ -715,7 +692,7 @@
Really use this shorter password?"), pw_min_CA)))
{
// skip other checks for short passwords
- ui_map["short"] = 1;
+ ui_map["short"] = pw1;
}
else
{
@@ -736,7 +713,7 @@
if (!Popup::YesNo (error_map ["question"]:""))
failed = true;
else
- ui_map[ error_map["question_id"]:"" ] = 1;
+ ui_map[ error_map["question_id"]:"" ] = pw1;
}
} while (error_map != $[] && !failed);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/src/UsersLDAP.pm new/yast2-users-2.16.27/src/UsersLDAP.pm
--- old/yast2-users-2.16.25/src/UsersLDAP.pm 2008-04-14 09:47:17.000000000 +0200
+++ new/yast2-users-2.16.27/src/UsersLDAP.pm 2008-04-16 10:30:38.000000000 +0200
@@ -120,7 +120,7 @@
"org_type", "what", "encrypted", "no_skeleton", "disabled", "enabled",
"dn", "org_dn", "removed_grouplist", "delete_home", "addit_data",
"warning_message", "warning_message_ID", "confirmed_warnings", "home_mode",
- "crypted_home_size");
+ "crypted_home_size","chown_home");
my @group_internal_keys =
("modified", "type", "more_users", "s_userlist", "encrypted", "org_type",
@@ -1263,6 +1263,7 @@
my $gid = $user->{"gidnumber"};
if (!defined $gid) { $gid = GetDefaultGID (); }
my $create_home = bool ($user->{"create_home"});
+ my $chown_home = bool ($user->{"chown_home"});
my $delete_home = bool ($user->{"delete_home"});
my $enabled = bool ($user->{"enabled"});
my $disabled = bool ($user->{"disabled"});
@@ -1377,7 +1378,7 @@
UsersRoutines->CreateHome (
$useradd_defaults{"skel"}, $home);
}
- if ($home ne "/var/lib/nobody") {
+ if ($home ne "/var/lib/nobody" && $chown_home) {
if (UsersRoutines->ChownHome ($uid, $gid, $home)) {
UsersRoutines->ChmodHome($home, $mode);
}
@@ -1420,7 +1421,10 @@
if ($create_home) {
UsersRoutines->MoveHome ($org_home, $home);
}
- if (!defined $user->{"crypted_home_size"} || $user->{"crypted_home_size"} eq 0){
+ if ($chown_home &&
+ (!defined $user->{"crypted_home_size"} ||
+ $user->{"crypted_home_size"} eq 0))
+ {
UsersRoutines->ChownHome ($uid, $gid, $home);
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/src/Users.pm new/yast2-users-2.16.27/src/Users.pm
--- old/yast2-users-2.16.25/src/Users.pm 2008-04-14 09:47:17.000000000 +0200
+++ new/yast2-users-2.16.27/src/Users.pm 2008-04-16 14:59:38.000000000 +0200
@@ -4,7 +4,7 @@
# Package: Configuration of users and groups
# Summary: I/O routines + main data structures
#
-# $Id: Users.pm 46383 2008-04-11 07:48:17Z jsuchome $
+# $Id: Users.pm 46731 2008-04-16 12:59:37Z jsuchome $
#
package Users;
@@ -2165,6 +2165,11 @@
$user_in_work{"create_home"} = YaST::YCP::Boolean (1);
}
+ # set the default value ("change the owner of home to its user")
+ if (!defined $user_in_work{"chown_home"}) {
+ $user_in_work{"chown_home"} = YaST::YCP::Boolean (1);
+ }
+
# check if user is using crypted directory
$user_in_work{"crypted_home_size"} = 0;
my $dir = UsersRoutines->CryptedImagePath ($username);
@@ -2301,6 +2306,7 @@
}
}
if ($key eq "create_home" || $key eq "delete_home" ||
+ $key eq "chown_home" ||
$key eq "encrypted" ||$key eq "no_skeleton" ||
$key eq "disabled" || $key eq "enabled") {
if (ref $data{$key} eq "YaST::YCP::Boolean") {
@@ -3025,6 +3031,7 @@
# now copy the data to map of current user
foreach my $key (keys %data) {
if ($key eq "create_home" || $key eq "encrypted" ||
+ $key eq "chown_home" ||
$key eq "delete_home" || $key eq "no_skeleton" ||
$key eq "disabled" || $key eq "enabled") {
$user_in_work{$key} = YaST::YCP::Boolean ($data{$key});
@@ -3081,6 +3088,9 @@
if (!defined $user_in_work{"create_home"}) {
$user_in_work{"create_home"} = YaST::YCP::Boolean (1);
}
+ if (!defined $user_in_work{"chown_home"}) {
+ $user_in_work{"chown_home"} = YaST::YCP::Boolean (1);
+ }
my %default_shadow = %{$self->GetDefaultShadow ($type)};
foreach my $shadow_item (keys %default_shadow) {
if (!defined $user_in_work{$shadow_item}) {
@@ -4418,6 +4428,7 @@
my $user_mod = $user{"modified"} || "no";
my $gid = $user{"gidnumber"};
my $create_home = $user{"create_home"};
+ my $chown_home = $user{"chown_home"};
my $skel = $useradd_defaults{"skel"};
if (defined $user{"crypted_home_size"} && $self->CryptedHomeModified (\%user)) {
$users_with_crypted_dir{$username} = \%user;
@@ -4435,7 +4446,7 @@
{
UsersRoutines->CreateHome ($skel, $home);
}
- if ($home ne "/var/lib/nobody") {
+ if ($home ne "/var/lib/nobody" && bool ($chown_home)) {
if (UsersRoutines->ChownHome ($uid, $gid, $home))
{
my $mode = 777 - String->CutZeros ($umask);
@@ -4465,7 +4476,10 @@
UsersRoutines->CreateHome ($skel, $home);
}
# do not change root's ownership of home directories
- if (!defined $user{"crypted_home_size"} || $user{"crypted_home_size"} eq 0){
+ if ((!defined $user{"crypted_home_size"} ||
+ $user{"crypted_home_size"} eq 0) &&
+ bool ($chown_home))
+ {
UsersRoutines->ChownHome ($uid, $gid, $home);
}
}
@@ -4774,7 +4788,7 @@
# check the uid of current user - part 2
BEGIN { $TYPEINFO{CheckUIDUI} = ["function",
["map", "string", "string"],
- "integer", ["map", "string", "integer"]];
+ "integer", ["map", "string", "any"]];
}
sub CheckUIDUI {
@@ -4784,7 +4798,7 @@
my $type = UsersCache->GetUserType ();
my %ret = ();
- if (($ui_map{"duplicated_uid"} || 0) != 1) {
+ if (($ui_map{"duplicated_uid"} || -1) != $uid) {
if (
(("add_user" eq ($user_in_work{"what"} || "")) ||
($uid != ($user_in_work{"uidnumber"} || 0)) ||
@@ -4801,7 +4815,7 @@
}
}
- if (($ui_map{"ldap_range"} || 0) != 1) {
+ if (($ui_map{"ldap_range"} || -1) != $uid) {
if ($type eq "ldap" &&
$uid < UsersCache->GetMinUID ("ldap"))
{
@@ -4816,7 +4830,7 @@
}
}
- if (($ui_map{"local"} || 0) != 1) {
+ if (($ui_map{"local"} || -1) != $uid) {
if ($type eq "system" &&
$uid > UsersCache->GetMinUID ("local") &&
$uid < UsersCache->GetMaxUID ("local") + 1)
@@ -4830,7 +4844,7 @@
}
}
- if (($ui_map{"system"} || 0) != 1) {
+ if (($ui_map{"system"} || -1) != $uid) {
if ($type eq "local" &&
$uid > UsersCache->GetMinUID ("system") &&
$uid < UsersCache->GetMaxUID ("system") + 1)
@@ -4942,7 +4956,7 @@
# @return value is map with the problem found
BEGIN { $TYPEINFO{CheckPasswordUI} = ["function",
["map", "string", "string"],
- "string", "string", ["map", "string", "integer"]];
+ "string", "string", ["map", "string", "any"]];
}
sub CheckPasswordUI {
@@ -4959,7 +4973,7 @@
return \%ret;
}
- if (UsersSimple->CrackLibUsed () && (($ui_map{"crack"} || 0) != 1)) {
+ if (UsersSimple->CrackLibUsed () && (($ui_map{"crack"} || "") ne $pw)) {
my $error = UsersSimple->CrackPassword ($pw);
if ($error ne "") {
$ret{"question_id"} = "crack";
@@ -4971,7 +4985,9 @@
}
}
- if (UsersSimple->ObscureChecksUsed () && (($ui_map{"obscure"} || 0) != 1)) {
+ if (UsersSimple->ObscureChecksUsed () &&
+ (($ui_map{"obscure"} || "") ne $pw))
+ {
my $error = UsersSimple->CheckObscurity ($name, $pw, UsersCache->GetCurrentSummary ());
if ($error ne "") {
$ret{"question_id"} = "obscure";
@@ -4980,7 +4996,7 @@
}
}
- if (($ui_map{"short"} || 0) != 1) {
+ if (($ui_map{"short"} || "") ne $pw) {
if (length ($pw) < $min_length) {
$ret{"question_id"} = "short";
# popup questionm, %i is number
@@ -4989,7 +5005,7 @@
}
}
- if (($ui_map{"truncate"} || 0) != 1) {
+ if (($ui_map{"truncate"} || "") ne $pw) {
my $error = UsersSimple->CheckPasswordMaxLength ($pw, $type);
if ($error ne "") {
$ret{"question_id"} = "truncate";
@@ -5098,7 +5114,7 @@
# check the home directory of current user - part 2
BEGIN { $TYPEINFO{CheckHomeUI} = ["function",
["map", "string", "string"],
- "integer", "string", ["map", "string", "integer"]];
+ "integer", "string", ["map", "string", "any"]];
}
sub CheckHomeUI {
@@ -5125,7 +5141,7 @@
my %stat = %{SCR->Read (".target.stat", $home)};
- if ((($ui_map{"not_dir"} || 0) != 1) &&
+ if ((($ui_map{"not_dir"} || "") ne $home) &&
%stat && !($stat{"isdir"} || 0)) {
$ret{"question_id"} = "not_dir";
@@ -5136,7 +5152,7 @@
return \%ret;
}
- if ((($ui_map{"chown"} || 0) != 1) &&
+ if ((($ui_map{"chown"} || "") ne $home) &&
%stat && ($stat{"isdir"} || 0)) {
$ret{"question_id"} = "chown";
@@ -5148,9 +5164,10 @@
if ($uid == $dir_uid) { # chown is not needed (#25200)
# yes/no popup
- $ret{"question"} = __("The home directory selected already exists
-and is owned by the currently edited user.
-Use this directory?");
+ $ret{"question"} = sprintf (__("The home directory selected (%s)
+already exists and is owned by the currently edited user.
+Use this directory?"), $home);
+ $ret{"owned"} = 1;
}
# maybe it is home of some user marked to delete...
elsif (defined $removed_homes{$home}) {
@@ -5168,7 +5185,7 @@
# check the shell of current user
BEGIN { $TYPEINFO{CheckShellUI} = ["function",
["map", "string", "string"],
- "string", ["map", "string", "integer"]];
+ "string", ["map", "string", "any"]];
}
sub CheckShellUI {
@@ -5177,7 +5194,7 @@
my %ui_map = %{$_[1]};
my %ret = ();
- if (($ui_map{"shell"} || 0) != 1 &&
+ if (($ui_map{"shell"} || "") ne $shell &&
($user_in_work{"loginshell"} || "") ne $shell ) {
if (!defined ($all_shells{$shell})) {
@@ -5246,7 +5263,7 @@
# check the gid of current group - part 2
BEGIN { $TYPEINFO{CheckGIDUI} = ["function",
["map", "string", "string"],
- "integer", ["map", "string", "integer"]];
+ "integer", ["map", "string", "any"]];
}
sub CheckGIDUI {
@@ -5256,7 +5273,7 @@
my $type = UsersCache->GetGroupType ();
my %ret = ();
- if (($ui_map{"duplicated_gid"} || 0) != 1) {
+ if (($ui_map{"duplicated_gid"} || -1) != $gid) {
if ((
("add_group" eq ($group_in_work{"what"} || "")) ||
($gid != ($group_in_work{"gidnumber"} || 0)) ||
@@ -5271,7 +5288,7 @@
}
}
- if (($ui_map{"ldap_range"} || 0) != 1) {
+ if (($ui_map{"ldap_range"} || -1) != $gid) {
if ($type eq "ldap" &&
$gid < UsersCache->GetMinGID ("ldap"))
{
@@ -5286,7 +5303,7 @@
}
}
- if (($ui_map{"local"} || 0) != 1) {
+ if (($ui_map{"local"} || -1) != $gid) {
if ($type eq "system" &&
$gid > UsersCache->GetMinGID ("local") &&
$gid < UsersCache->GetMaxGID ("local"))
@@ -5300,7 +5317,7 @@
}
}
- if (($ui_map{"system"} || 0) != 1) {
+ if (($ui_map{"system"} || -1) != $gid) {
if ($type eq "local" &&
$gid > UsersCache->GetMinGID ("system") &&
$gid < UsersCache->GetMaxGID ("system"))
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/src/users_proposal.ycp new/yast2-users-2.16.27/src/users_proposal.ycp
--- old/yast2-users-2.16.25/src/users_proposal.ycp 2008-04-14 15:39:06.000000000 +0200
+++ new/yast2-users-2.16.27/src/users_proposal.ycp 2008-04-14 16:06:24.000000000 +0200
@@ -3,7 +3,7 @@
* Author: Jiri Suchomel
* Purpose: Proposal for user and root setting
*
- * $Id: users_proposal.ycp 45729 2008-03-26 09:56:39Z jsuchome $
+ * $Id: users_proposal.ycp 46588 2008-04-14 14:06:23Z jsuchome $
*/
{
textdomain "users";
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/src/UsersSimple.pm new/yast2-users-2.16.27/src/UsersSimple.pm
--- old/yast2-users-2.16.25/src/UsersSimple.pm 2008-04-14 09:47:17.000000000 +0200
+++ new/yast2-users-2.16.27/src/UsersSimple.pm 2008-04-16 15:57:07.000000000 +0200
@@ -90,6 +90,9 @@
my %imported_users = ();
my %imported_shadow = ();
+# if importing users during installation is possible
+my $import_available;
+
##------------------------------------
##------------------- global imports
@@ -97,6 +100,7 @@
YaST::YCP::Import ("FileUtils");
YaST::YCP::Import ("ProductControl");
YaST::YCP::Import ("SCR");
+YaST::YCP::Import ("SystemFilesCopy");
YaST::YCP::Import ("UsersUI");
# known system users (hard-written here to check user name conflicts)
@@ -702,7 +706,7 @@
# @return value is map with the problem found FIXME example
BEGIN { $TYPEINFO{CheckPasswordUI} = ["function",
["map", "string", "string"],
- ["map", "string", "any"], ["map", "string", "integer"]];
+ ["map", "string", "any"], ["map", "string", "any"]];
}
sub CheckPasswordUI {
@@ -719,7 +723,7 @@
return \%ret;
}
- if ($self->CrackLibUsed () && (($ui_map->{"crack"} || 0) != 1)) {
+ if ($self->CrackLibUsed () && (($ui_map->{"crack"} || "") ne $pw)) {
my $error = $self->CrackPassword ($pw);
if ($error ne "") {
$ret{"question_id"} = "crack";
@@ -731,7 +735,7 @@
}
}
- if ($self->ObscureChecksUsed () && (($ui_map->{"obscure"} || 0) != 1)) {
+ if ($self->ObscureChecksUsed () && (($ui_map->{"obscure"} || "") ne $pw)) {
my $what = "users";
$what = "groups" if (! defined $data->{"uid"});
my $error = $self->CheckObscurity ($name, $pw, $what);
@@ -742,7 +746,7 @@
}
}
- if (($ui_map->{"short"} || 0) != 1) {
+ if (($ui_map->{"short"} || "") ne $pw) {
if (length ($pw) < $min_length) {
$ret{"question_id"} = "short";
# popup questionm, %i is number
@@ -751,7 +755,7 @@
}
}
- if (($ui_map->{"truncate"} || 0) != 1) {
+ if (($ui_map->{"truncate"} || "") ne $pw) {
my $error = $self->CheckPasswordMaxLength ($pw, $type);
if ($error ne "") {
$ret{"question_id"} = "truncate";
@@ -921,9 +925,6 @@
$encryption_method =
$data->{"encryption_method"} || $encryption_method;
$run_krb_config = bool ($data->{"run_krb_config"});
-# if (ref ($data->{"user"}) eq "HASH") {
-# %user = %{$data->{"user"}};
-# }
if (ref ($data->{"users"}) eq "ARRAY") {
@users = @{$data->{"users"}};
}
@@ -950,10 +951,6 @@
my %shadow_tmp = ();
my $in = SCR->Read (".target.string", $file);
- if (! FileUtils->Exists ($file)) {
- y2warning ("$file is not available!");
- return undef;
- }
if (! defined $in) {
y2warning ("$file cannot be opened for reading!");
return undef;
@@ -1006,10 +1003,6 @@
%imported_shadow = ();
my %usernames = ();
- if (! FileUtils->Exists ($file)) {
- y2warning ("$file is not available!");
- return 0;
- }
my $in = SCR->Read (".target.string", $file);
if (! defined $in) {
y2warning ("$file cannot be opened for reading!");
@@ -1093,7 +1086,6 @@
if (defined $shadow_tmp && ref ($shadow_tmp) eq "HASH") {
$ret = read_passwd ($base_directory, $shadow_tmp);
}
-# FIXME do not read again for the same directory
return $ret;
}
@@ -1107,6 +1099,7 @@
my ($self, $type) = @_;
my %ret = ();
+
if (defined $imported_users{$type} && ref($imported_users{$type}) eq "HASH")
{
%ret = %{$imported_users{$type}};
@@ -1122,5 +1115,33 @@
return \%ret;
}
+##------------------------------------
+# Check if importing user data from the system is available:
+# if yes, go and read the data
+BEGIN { $TYPEINFO{ImportAvailable} = ["function", "boolean"]; }
+sub ImportAvailable {
+
+ return $import_available if defined $import_available;
+
+ my $self = shift;
+ my $tmp_dir = Directory->tmpdir()."/users";
+ my $vardir = Directory->vardir();
+ my $import_dir = $tmp_dir.$vardir."/imported/userdata/etc";
+
+ $import_available = (
+ SCR->Execute (".target.mkdir", $tmp_dir) &&
+ SystemFilesCopy->CopyFilesToSystem ($tmp_dir) &&
+ FileUtils->Exists ($import_dir."/passwd") &&
+ FileUtils->Exists ($import_dir."/shadow") &&
+ $self->ReadUserData ($import_dir)
+ );
+ y2milestone ("import available: $import_available");
+
+ # remove the directory with copied data after reading it
+ SCR->Execute (".target.bash", "/bin/rm -rf $tmp_dir");
+
+ return $import_available;
+}
+
42
# EOF
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/testsuite/tests/AddUser.out new/yast2-users-2.16.27/testsuite/tests/AddUser.out
--- old/yast2-users-2.16.25/testsuite/tests/AddUser.out 2008-04-14 09:47:18.000000000 +0200
+++ new/yast2-users-2.16.27/testsuite/tests/AddUser.out 2008-04-16 14:42:41.000000000 +0200
@@ -15,10 +15,10 @@
Dump $[]
Return
Dump ---- current user (empty add):
-Dump $["cn":"", "create_home":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uidnumber":"1000", "userpassword":nil, "what":"add_user"]
+Dump $["chown_home":true, "cn":"", "create_home":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uidnumber":"1000", "userpassword":nil, "what":"add_user"]
Return
Dump ---- current user (after rich add):
-Dump $["cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1"], "groupname":"users", "homedirectory":"/local/home/aaa", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"local", "uid":"aaa", "uidnumber":"501", "userpassword":"crypted_qqqqq", "what":"add_user"]
+Dump $["chown_home":true, "cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1"], "groupname":"users", "homedirectory":"/local/home/aaa", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"local", "uid":"aaa", "uidnumber":"501", "userpassword":"crypted_qqqqq", "what":"add_user"]
Execute .target.bash_output "echo 'aaa' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"aaa"]
Return
Dump ---- current group (before user commit):
@@ -33,7 +33,7 @@
Return
Return
Dump ---- current user (minimal add, used default values):
-Dump $["cn":"", "create_home":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/hhh", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hhh", "uidnumber":"1000", "userpassword":nil, "what":"add_user"]
+Dump $["chown_home":true, "cn":"", "create_home":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/hhh", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hhh", "uidnumber":"1000", "userpassword":nil, "what":"add_user"]
Execute .target.bash_output "echo 'hhh' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"hhh"]
Return No password entered.
Dump ---- check user after add:
@@ -43,7 +43,7 @@
Return
Return
Dump ---- current user (just added):
-Dump $["cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/root", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"local", "uid":"root", "uidnumber":"1000", "userpassword":"crypted_qqqqq", "what":"add_user"]
+Dump $["chown_home":true, "cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/root", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"local", "uid":"root", "uidnumber":"1000", "userpassword":"crypted_qqqqq", "what":"add_user"]
Execute .target.bash_output "echo 'root' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"root"]
Return There is a conflict between the entered
Dump ---- check user after add:
@@ -54,7 +54,7 @@
Return
Return
Dump ---- current user (just added):
-Dump $["cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/rrr", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"local", "uid":"rrr", "uidnumber":"5", "userpassword":"crypted_qqqqq", "what":"add_user"]
+Dump $["chown_home":true, "cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/rrr", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"local", "uid":"rrr", "uidnumber":"5", "userpassword":"crypted_qqqqq", "what":"add_user"]
Return The selected user ID is not allowed.
Dump ---- check user after add:
Dump The selected user ID is not allowed.
@@ -64,7 +64,7 @@
Return
Return
Dump ---- current user (just added):
-Dump $["cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/iii$", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"local", "uid":"iii$", "uidnumber":"1000", "userpassword":"crypted_qqqqq", "what":"add_user"]
+Dump $["chown_home":true, "cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/iii$", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"local", "uid":"iii$", "uidnumber":"1000", "userpassword":"crypted_qqqqq", "what":"add_user"]
Execute .target.bash_output "echo 'iii$' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":""]
Return The username may contain only
Dump ---- check user after add:
@@ -76,7 +76,7 @@
Return
Return
Dump ---- current user (just added):
-Dump $["cn":"", "create_home":true, "dn":"uid=iii$,dc=suse,dc=cz", "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/ldap/iii", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"ldap", "uid":"iii$", "uidnumber":"1000", "userpassword":"crypted_qqqqq", "what":"add_user"]
+Dump $["chown_home":true, "cn":"", "create_home":true, "dn":"uid=iii$,dc=suse,dc=cz", "encrypted":true, "gidnumber":"100", "grouplist":$["audio":"1", "video":"1"], "groupname":"users", "homedirectory":"/home/ldap/iii", "loginshell":"", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "text_userpassword":"qqqqq", "type":"ldap", "uid":"iii$", "uidnumber":"1000", "userpassword":"crypted_qqqqq", "what":"add_user"]
Execute .target.bash_output "echo 'iii' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"iii"]
Return
Dump ---- check user after add:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/testsuite/tests/EditUser.out new/yast2-users-2.16.27/testsuite/tests/EditUser.out
--- old/yast2-users-2.16.25/testsuite/tests/EditUser.out 2008-04-14 09:47:17.000000000 +0200
+++ new/yast2-users-2.16.27/testsuite/tests/EditUser.out 2008-04-16 14:43:46.000000000 +0200
@@ -17,7 +17,7 @@
Read .anyxml "/etc/security/pam_mount.conf.xml" nil
Return
Dump ---- user 'hh':
-Dump $["addit_data":"", "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/hh", "loginshell":"/bin/bash", "org_uidnumber":"500", "org_user":$["addit_data":"", "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/hh", "loginshell":"/bin/bash", "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"500", "userpassword":"heslo"], "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"501", "userpassword":"heslo", "what":"edit_user"]
+Dump $["addit_data":"", "chown_home":true, "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/hh", "loginshell":"/bin/bash", "org_uidnumber":"500", "org_user":$["addit_data":"", "chown_home":true, "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/hh", "loginshell":"/bin/bash", "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"500", "userpassword":"heslo"], "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"501", "userpassword":"heslo", "what":"edit_user"]
Execute .target.bash_output "echo 'hh' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"hh"]
Return
Dump ---- check user after edit:
@@ -42,11 +42,11 @@
Dump $[]
Return nil
Dump ---- user 501:
-Dump $["addit_data":"", "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/hh", "loginshell":"/bin/bash", "org_homedirectory":"/home/hh", "org_uid":"hh", "org_uidnumber":"501", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"501", "userpassword":"heslo", "what":"edit_user"]
+Dump $["addit_data":"", "chown_home":true, "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/hh", "loginshell":"/bin/bash", "org_homedirectory":"/home/hh", "org_uid":"hh", "org_uidnumber":"501", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"501", "userpassword":"heslo", "what":"edit_user"]
Read .anyxml "/etc/security/pam_mount.conf.xml" nil
Return
Dump ---- user 'hh':
-Dump $["addit_data":"", "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/new/home/hh", "loginshell":"/bin/bash", "org_homedirectory":"/home/hh", "org_uid":"hh", "org_uidnumber":"501", "org_user":$["addit_data":"", "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/hh", "loginshell":"/bin/bash", "org_homedirectory":"/home/hh", "org_uid":"hh", "org_uidnumber":"501", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"501", "userpassword":"heslo", "what":"edit_user"], "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"501", "userpassword":"heslo", "what":"edit_user"]
+Dump $["addit_data":"", "chown_home":true, "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/new/home/hh", "loginshell":"/bin/bash", "org_homedirectory":"/home/hh", "org_uid":"hh", "org_uidnumber":"501", "org_user":$["addit_data":"", "chown_home":true, "cn":"HaHa", "create_home":true, "crypted_home_size":"0", "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/hh", "loginshell":"/bin/bash", "org_homedirectory":"/home/hh", "org_uid":"hh", "org_uidnumber":"501", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"501", "userpassword":"heslo", "what":"edit_user"], "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"13727", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"hh", "uidnumber":"501", "userpassword":"heslo", "what":"edit_user"]
Execute .target.bash_output "echo 'hh' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"hh"]
Return
Dump ---- check user after edit:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/testsuite/tests/Import.out new/yast2-users-2.16.27/testsuite/tests/Import.out
--- old/yast2-users-2.16.25/testsuite/tests/Import.out 2008-04-14 09:47:17.000000000 +0200
+++ new/yast2-users-2.16.27/testsuite/tests/Import.out 2008-04-16 14:44:36.000000000 +0200
@@ -14,4 +14,4 @@
Dump ["ggg", "hh", "ii"]
Return nil
Dump ---- user 'ggg':
-Dump $["cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/ggg", "loginshell":"", "modified":"added", "org_homedirectory":"/home/ggg", "org_uid":"ggg", "org_uidnumber":"1000", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"ggg", "uidnumber":"1000", "userpassword":"crypted_password", "what":"add_user"]
+Dump $["chown_home":true, "cn":"", "create_home":true, "encrypted":true, "gidnumber":"100", "grouplist":$[], "groupname":"users", "homedirectory":"/home/ggg", "loginshell":"", "modified":"added", "org_homedirectory":"/home/ggg", "org_uid":"ggg", "org_uidnumber":"1000", "plugins":[], "shadowexpire":"", "shadowflag":"", "shadowinactive":"", "shadowlastchange":"0", "shadowmax":"99999", "shadowmin":"0", "shadowwarning":"7", "type":"local", "uid":"ggg", "uidnumber":"1000", "userpassword":"crypted_password", "what":"add_user"]
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-users-2.16.25/VERSION new/yast2-users-2.16.27/VERSION
--- old/yast2-users-2.16.25/VERSION 2008-04-14 15:55:45.000000000 +0200
+++ new/yast2-users-2.16.27/VERSION 2008-04-16 16:05:37.000000000 +0200
@@ -1 +1 @@
-2.16.25
+2.16.27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org