Author: jsuchome
Date: Wed Jun 11 12:49:14 2008
New Revision: 48222
URL: http://svn.opensuse.org/viewcvs/yast?rev=48222&view=rev
Log:
- image-creator: added support for UID, GID and user's full name
- 2.17.0
Modified:
trunk/product-creator/VERSION
trunk/product-creator/agent-kiwi/ag_kiwi
trunk/product-creator/package/yast2-product-creator.changes
trunk/product-creator/src/Kiwi.ycp
trunk/product-creator/src/kiwi_dialogs.ycp
Modified: trunk/product-creator/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/VERSION?rev=48222&r1=48221&r2=48222&view=diff
==============================================================================
--- trunk/product-creator/VERSION (original)
+++ trunk/product-creator/VERSION Wed Jun 11 12:49:14 2008
@@ -1 +1 @@
-2.16.19
+2.17.0
Modified: trunk/product-creator/agent-kiwi/ag_kiwi
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/agent-kiwi/ag_kiwi?rev=48222&r1=48221&r2=48222&view=diff
==============================================================================
--- trunk/product-creator/agent-kiwi/ag_kiwi (original)
+++ trunk/product-creator/agent-kiwi/ag_kiwi Wed Jun 11 12:49:14 2008
@@ -108,18 +108,22 @@
$retmap{"users"} = {};
foreach my $usernode ($usrdataNodeList -> get_nodelist()) {
- my $group = $usernode -> getAttribute("group");
+ my $group = $usernode -> getAttribute("group");
+ my $gid = $usernode -> getAttribute("id");
my @ntag = $usernode -> getElementsByTagName ("user") -> get_nodelist();
foreach my $element (@ntag) {
my $name = $element -> getAttribute ("name");
my $pwd = $element -> getAttribute ("pwd");
my $home = $element -> getAttribute ("home");
+ my $uid = $element -> getAttribute ("id");
my $realname = $element -> getAttribute ("realname");
if (defined $name) {
$retmap{"users"}{$name}{group} = $group if (defined $group);
$retmap{"users"}{$name}{home} = $home if (defined $home);
$retmap{"users"}{$name}{pwd} = $pwd if (defined $pwd);
$retmap{"users"}{$name}{realname} = $realname if (defined $realname);
+ $retmap{"users"}{$name}{id} = $uid if (defined $uid);
+ $retmap{"users"}{$name}{gid} = $gid if (defined $gid);
}
}
}
Modified: trunk/product-creator/package/yast2-product-creator.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/package/yast2-product-creator.changes?rev=48222&r1=48221&r2=48222&view=diff
==============================================================================
--- trunk/product-creator/package/yast2-product-creator.changes (original)
+++ trunk/product-creator/package/yast2-product-creator.changes Wed Jun 11 12:49:14 2008
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Wed Jun 11 11:18:33 CEST 2008 - jsuchome@suse.cz
+
+- image-creator: added support for UID, GID and user's full name
+- 2.17.0
+
+-------------------------------------------------------------------
Tue Jun 3 15:49:54 CEST 2008 - jsuchome@suse.cz
- check if map key exists before removing it (bnc#396666)
Modified: trunk/product-creator/src/Kiwi.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/src/Kiwi.ycp?rev=48222&r1=48221&r2=48222&view=diff
==============================================================================
--- trunk/product-creator/src/Kiwi.ycp (original)
+++ trunk/product-creator/src/Kiwi.ycp Wed Jun 11 12:49:14 2008
@@ -212,6 +212,38 @@
}
/**
+ * generate the value map for group to be used by Map2XML
+ */
+ map get_group_value (string group, list<map> userlist) {
+
+ string gid = "";
+ map ret = $[
+ "__key" : "users",
+ "group" : group,
+ "__children" : maplist (map usermap, userlist, {
+ map u = $[
+ "__key" : "user",
+ "name" : usermap["username"]:"",
+ "pwd" : (usermap["encrypted"]:false) ?
+ usermap["pwd"]:"" :
+ crypt_password (usermap["pwd"]:""),
+ "home" : usermap["home"]:"",
+ ];
+ if (usermap["realname"]:"" != "")
+ u["realname"] = usermap["realname"]:"";
+ if (usermap["id"]:"" != "")
+ u["id"] = usermap["id"]:"";
+ if (usermap["gid"]:"" != "")
+ gid = usermap["gid"]:"";
+ return u;
+ })
+ ];
+ if (gid != "")
+ ret["id"] = gid;
+ return ret;
+ }
+
+ /**
* which keys in config.xml are not unique
*/
map non_unique_key = $[
@@ -353,8 +385,9 @@
"encrypted" : crypted,
"group" : usermap["group"]:"",
"username" : user,
+ "id" : sformat ("%1", usermap["id"]:""),
+ "gid" : sformat ("%1", usermap["gid"]:""),
];
- //FIXME save this, show in UI...
if (usermap["realname"]:"" != "")
ret["users",user,"realname"] = usermap["realname"]:"";
});
@@ -471,7 +504,9 @@
if (haskey (KiwiConfig, "users"))
{
map groups2users = $[];
- foreach (string user, map usermap, (map) KiwiConfig["users"]:$[], {
+ foreach (string user, map usermap,
+ (map) KiwiConfig["users"]:$[],
+ {
string g = usermap["group"]:"";
if (g == "")
g = user == "root" ? "root" : "users";
@@ -480,21 +515,9 @@
groups2users[g] = add (groups2users[g]:[], usermap);
});
foreach (string group, list userlist, groups2users, {
- write_list[0,"__children"] = add (write_list[0,"__children"]:[], $[
- "__key" : "users",
- "group" : group,
- "__children" : maplist (map usermap, (list<map>) userlist, {
- map u = $[
- "__key" : "user",
- "name" : usermap["username"]:"",
- "pwd" : (usermap["encrypted"]:false) ? usermap["pwd"]:"" : crypt_password (usermap["pwd"]:""),
- "home" : usermap["home"]:"",
- ];
- if (usermap["realname"]:"" != "")
- u["realname"] = usermap["realname"]:"";
- return u;
- })
- ]);
+ write_list[0,"__children"] = add (write_list[0,"__children"]:[],
+ get_group_value (group, (list<map>) userlist)
+ );
});
}
write_list[0,"__children"] = union (write_list[0,"__children"]:[],
Modified: trunk/product-creator/src/kiwi_dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/product-creator/src/kiwi_dialogs.ycp?rev=48222&r1=48221&r2=48222&view=diff
==============================================================================
--- trunk/product-creator/src/kiwi_dialogs.ycp (original)
+++ trunk/product-creator/src/kiwi_dialogs.ycp Wed Jun 11 12:49:14 2008
@@ -391,8 +391,16 @@
*/
define void InitUsersTable (string id) {
- list items = maplist (string user, map usermap, (map) KiwiConfig["users"]:$[],
- ``(`item (`id (user), user, usermap["home"]:"", usermap["group"]:"users")));
+ list items = maplist (string user, map usermap,
+ (map) KiwiConfig["users"]:$[], ``(
+ `item (`id (user),
+ user, usermap["realname"]:"",
+ sformat ("%1", usermap["id"]:""),
+ usermap["home"]:"",
+ usermap["group"]:"users", usermap["gid"]:""
+ )
+ )
+ );
UI::ChangeWidget (`id ("table"), `Items, items);
UI::ChangeWidget (`id ("edituser"), `Enabled, size (items) > 0);
UI::ChangeWidget (`id ("deleteuser"), `Enabled, size (items) > 0);
@@ -406,30 +414,49 @@
if (key == "userstable") key = "edituser";
string current_user = (string) UI::QueryWidget (`id ("table"), `CurrentItem);
+ map user_map = KiwiConfig["users", current_user]:$[];
UI::OpenDialog (`opt(`decorated), `HBox (`HSpacing (0.5), `VBox (
`VSpacing (0.5),
// popup label
`Label (`id (`label), _("Add new user")),
// text entry label
- `TextEntry (`id (`username), _("&Name")),
- `Password (`id (`pw1), Label::Password(), ""),
- `Password (`id(`pw2), Label::ConfirmPassword(), ""),
+ `TextEntry (`id (`username), _("Login &Name")),
+ // text entry label
+ `TextEntry (`id (`realname), _("&Full Name")),
+ `Password (`id (`pw1), `opt (`hstretch), Label::Password(), ""),
+ `Password (`id(`pw2), `opt (`hstretch), Label::ConfirmPassword(), ""),
+ // text entry label
`TextEntry (`id (`home), _("&Home Directory")),
+ // text entry label
+ `InputField (`id (`uid), `opt (`hstretch), _("&UID")),
+ `HBox (
+ // text entry label
`TextEntry (`id (`group), _("&Group Name")),
+ // text entry label
+ `InputField (`id (`gid), `opt (`hstretch), _("&GID"))
+ ),
`HBox (
`PushButton (`id(`ok),`opt(`key_F10), Label::OKButton()),
`PushButton (`id(`cancel),`opt(`key_F9), Label::CancelButton())
),
`VSpacing (0.5)), `HSpacing (0.5))
);
+ UI::ChangeWidget (`id (`uid), `ValidChars, String::CDigit ());
+ UI::ChangeWidget (`id (`gid), `ValidChars, String::CDigit ());
if (key == "edituser")
{
UI::ChangeWidget (`id (`username), `Value, current_user);
- UI::ChangeWidget (`id (`home), `Value, KiwiConfig["users", current_user, "home"]:"");
- UI::ChangeWidget (`id (`group), `Value, KiwiConfig["users", current_user, "group"]:"users");
- UI::ChangeWidget (`id (`pw1), `Value, "*****");
- UI::ChangeWidget (`id (`pw2), `Value, "*****");
+ UI::ChangeWidget (`id (`realname), `Value, user_map["realname"]:"");
+ UI::ChangeWidget (`id (`home), `Value, user_map["home"]:"");
+ UI::ChangeWidget (`id (`group), `Value, user_map["group"]:"users");
+ UI::ChangeWidget (`id (`uid), `Value, user_map["id"]:"");
+ UI::ChangeWidget (`id (`gid), `Value, user_map["gid"]:"");
+ if (user_map["pwd"]:"" != "")
+ {
+ UI::ChangeWidget (`id (`pw1), `Value, user_map["pwd"]:"");
+ UI::ChangeWidget (`id (`pw2), `Value, user_map["pwd"]:"");
+ }
// popup label
UI::ChangeWidget (`id (`label), `Value, _("Edit User"));
}
@@ -456,6 +483,7 @@
ret = `notnext;
continue;
}
+ /* password can be empty
if (pwd == "")
{
// popup message
@@ -463,6 +491,7 @@
ret = `notnext;
continue;
}
+ */
if (! haskey (KiwiConfig, "users"))
KiwiConfig["users"] = $[];
else if (key == "edituser" && username != current_user)
@@ -473,9 +502,12 @@
KiwiConfig["users", username] = $[
"pwd" : pwd,
"encrypted" : false,
- "home" : UI::QueryWidget (`id(`home), `Value),
- "group" : group,
+ "home" : UI::QueryWidget (`id(`home), `Value),
+ "realname" : UI::QueryWidget (`id(`realname), `Value),
+ "group" : group,
"username" : username,
+ "id" : UI::QueryWidget (`id(`uid), `Value),
+ "gid" : UI::QueryWidget (`id(`gid), `Value)
];
}
} until (ret == `ok || ret == `cancel);
@@ -1412,11 +1444,17 @@
"widget" : `custom,
"custom_widget" : `Table (`id("table"), `opt (`notify), `header(
// table header
- _("Name"),
+ _("Login Name"),
+ // table header
+ _("Full Name"),
+ // table header
+ _("UID"),
// table header
_("Home Directory"),
// table header
- _("Group"))
+ _("Group"),
+ // table header
+ _("GID"))
),
// help for table with users
"help" : _("<p>For each user, specify <b>Name</b>, <b>Password</b>, <b>Home Directory</b> and group
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org