Mailinglist Archive: yast-devel (121 mails)

< Previous Next >
Re: [yast-devel] Re: [yast-commit] r64348 - in /trunk/ca-management: ./ VERSION package/yast2-ca-management.changes src/CaMgm.ycp src/ca_mgm_proposal.ycp src/ca_select_proposal.ycp src/new_cert_read_write.ycp
Martin Vidner write:
On Tue, Jun 14, 2011 at 12:53:18PM -0000, jreidinger@xxxxxxxxxxxxxxxxx wrote:
Author: jreidinger
Date: Tue Jun 14 14:53:17 2011
New Revision: 64348

URL: http://svn.opensuse.org/viewcvs/yast?rev=64348&view=rev
Log:
merge SP1 features to ca management

Modified:
trunk/ca-management/ (props changed)
trunk/ca-management/VERSION
trunk/ca-management/package/yast2-ca-management.changes
trunk/ca-management/src/CaMgm.ycp
trunk/ca-management/src/ca_mgm_proposal.ycp
trunk/ca-management/src/ca_select_proposal.ycp
trunk/ca-management/src/new_cert_read_write.ycp

Modified: trunk/ca-management/VERSION
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/ca-management/VERSION?rev=64348&r1=64347&r2=64348&view=diff
==============================================================================
--- trunk/ca-management/VERSION (original)
+++ trunk/ca-management/VERSION Tue Jun 14 14:53:17 2011
@@ -1 +1 @@
-2.21.0
+2.21.1

Modified: trunk/ca-management/package/yast2-ca-management.changes
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/ca-management/package/yast2-ca-management.changes?rev=64348&r1=64347&r2=64348&view=diff
==============================================================================
--- trunk/ca-management/package/yast2-ca-management.changes (original)
+++ trunk/ca-management/package/yast2-ca-management.changes Tue Jun 14
14:53:17 2011
@@ -1,4 +1,12 @@
-------------------------------------------------------------------
+Tue Jun 14 13:02:34 CEST 2011 - jreidinger@xxxxxxx
+
+- version 2.21.1
+- country selection combobox is editable to allow choose of

choosing

+ countries not listed there (FATE#310179)
+- allow to change altarnative name in CA proposal (FATE#308423)

alternative

thanks for review. I am not sure if I can backwards change changelog


+
+-------------------------------------------------------------------
Fri Apr 29 11:32:34 CEST 2011 - mc@xxxxxxx

- version 2.21.0

Modified: trunk/ca-management/src/CaMgm.ycp
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/ca-management/src/CaMgm.ycp?rev=64348&r1=64347&r2=64348&view=diff
==============================================================================
--- trunk/ca-management/src/CaMgm.ycp (original)
+++ trunk/ca-management/src/CaMgm.ycp Tue Jun 14 14:53:17 2011
@@ -136,6 +136,7 @@
global symbol prop_selection = `def; // `none, `disk

global list<map> prop_subject_alt_name_list = [];
+global boolean prop_adv_cri_issuer_alt_name = false;

bbrvtns! i lv bbrvtns!
f ths s prt f xstng cnvntn (*sgh*) , plz dd cmmnt, lk:
// property: advanced criminal issuer altimeter name

It is not my code and I implement there just feature (and don't plan maintain
it :), so I follow existing style to be consistent. Actually this variable is
prop_<global variable name>



global boolean adv_subject_alt_name_show_email = false;


Modified: trunk/ca-management/src/ca_mgm_proposal.ycp
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/ca-management/src/ca_mgm_proposal.ycp?rev=64348&r1=64347&r2=64348&view=diff
==============================================================================
--- trunk/ca-management/src/ca_mgm_proposal.ycp (original)
+++ trunk/ca-management/src/ca_mgm_proposal.ycp Tue Jun 14 14:53:17 2011
@@ -54,18 +54,20 @@

map<string,string> host_ips = getHostIPs ();
string hostname_bak = "";
- CaMgm::prop_subject_alt_name_list = [];
+ if (size(CaMgm::prop_subject_alt_name_list) <= 0){
+ CaMgm::prop_subject_alt_name_list = [];

- foreach(string key, string value, host_ips, {
-
if(value == "DNS")
-
{
-
hostname_bak = key;
-
}
-
map elem = $[];
-
elem["kind"] = value;
-
elem["name"] = key;
-
CaMgm::prop_subject_alt_name_list = add
(CaMgm::prop_subject_alt_name_list, elem);
- });
+ foreach(string key, string value, host_ips, {
+ if(value == "DNS")
+ {
+ hostname_bak = key;
+ }
+ map elem = $[];
+ elem["kind"] = value;
+ elem["name"] = key;
+ CaMgm::prop_subject_alt_name_list = add
(CaMgm::prop_subject_alt_name_list, elem);
+ });
+ }

Thanks for fixing the indentation. Could you please make such fixes
in separate commits, it makes reviewing easier.

It was separate commit, but merge in svn is quite stupid and do it as one
commit in trunk.



map retmap = (map) SCR::Execute (.target.bash_output,

"/bin/hostname --long",

Modified: trunk/ca-management/src/ca_select_proposal.ycp
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/ca-management/src/ca_select_proposal.ycp?rev=64348&r1=64347&r2=64348&view=diff
==============================================================================
--- trunk/ca-management/src/ca_select_proposal.ycp (original)
+++ trunk/ca-management/src/ca_select_proposal.ycp Tue Jun 14 14:53:17 2011
@@ -49,6 +49,151 @@
});
return result;
}
+
+ define list editAltNames( list<map> initial_set ){
+ term alt_dialog = `HBox( `VSpacing(10),
+ `VBox (`HSpacing(10),
+ `RadioButtonGroup(`id(`rb),
+ `HBox(
+
`RadioButton(`id("URI"), `opt(`notify), "URI", true),
+
`RadioButton(`id("email"), `opt(`notify), "email"),
+
`RadioButton(`id("DNS"), `opt(`notify), "DNS"),
+
`RadioButton(`id("IP"), `opt(`notify), "IP"),
+
`RadioButton(`id("RID"), `opt(`notify), "RID"),
+
`RadioButton(`id("MS-UPN"), `opt(`notify), "MS-UPN"),
+
`RadioButton(`id("K5PN"), `opt(`notify), "K5PN")
+ )),
+ `TextEntry(`id(`name),
_("&Name:")),

labels should not have trailing colons

I just copy there part of advanced settings dialog, so complain to code author


+ // push button label
+ `HBox(`PushButton (`id(`cancel),
`opt(`key_F9), Label::CancelButton()),
+ `HStretch(),
+ `PushButton (`id(`ok),
`opt(`default, `key_F10), Label::OKButton())
+ ),
+ `HSpacing(10)
+ ),
+ `VSpacing(10)
+ );
+ UI::OpenDialog (
+ `VBox ( `Left (`CheckBox(`id(`id_adv_cri_subject_alt_name),
+ _("critical"),

"critical" what? Add a comment for translators so that they know
whether it is "kritický" (certifikát) or "kritická" (chyba) or
"kritické" (čtení kódu)

same here, I just copy part of advanced dialog, actually I don't know what is
critical (but have some idea ) :)


+ CaMgm::prop_adv_cri_issuer_alt_name
+ )),
+ `VSpacing(1.5),
+ `HBox(
+ `VSpacing(5),
+ `HWeight (3, `Table (`id
(`id_adv_subject_alt_name),
+ `header (
+ // To
translators: table headers
+ _("Kind"),
+ _("Name")
+ )
+ )),
+ `HWeight (1, `VBox(
+ `HBox ( `HWeight
(1,`PushButton (`id (`add),
+
`opt (`key_F3),
+
Label::AddButton()
+ ))),
+ `HBox ( `HWeight
(1,`PushButton (`id (`edit),
+
`opt (`key_F3),
+
Label::EditButton()
+ ))),
+ `HBox ( `HWeight
(1,`PushButton (`id (`delete),
+
`opt (`key_F5),
+
Label::DeleteButton()
+ ))),
+ `VStretch()
+ ))),
+ `VSpacing(1.5),
+
`ButtonBox(`PushButton(`id(`ok),`opt(`key_F10),Label::OKButton()),
+ `PushButton
(`id(`cancel),`opt(`key_F9,`default), Label::CancelButton())
+ )
+ ));
+ any ret = nil;
+ do {
+ integer i = 0;
+ list<term> table_list = maplist( map element, initial_set, ``{
+ i = i + 1;
+ return `item (`id (i), element["kind"]:"",
element["name"]:"" );
+ });
+ UI::ChangeWidget(`id(`id_adv_subject_alt_name), `Items,
table_list);
+ ret = UI::UserInput();
+ if (ret == `add || ret == `edit ){
+ string current_kind = "";
+ string current_name = "";
+ if (ret == `edit){
+ integer current_item =
(integer)UI::QueryWidget(`id(`id_adv_subject_alt_name), `CurrentItem);
+ term table_item = (term)
UI::QueryWidget(`id(`id_adv_subject_alt_name), `Item(current_item));
+ if (table_item == nil)
+ {
+ Popup::Error (_("No item has been selected."));
+ continue;
+ }
+
+ current_kind = (string) table_item[1]:"";
+ current_name = (string) table_item[2]:"";
+ }
+ UI::OpenDialog (`opt(`decorated ),alt_dialog);
+ UI::SetFocus (`id(`ok));
+ if (ret == `edit){
+ UI::ChangeWidget(`id(`name), `Value, current_name);
+ UI::ChangeWidget(`id(`rb), `CurrentButton, current_kind);
+ }
+ if(!CaMgm::adv_subject_alt_name_show_email)
+ {
+ UI::ChangeWidget(`id("email"), `Enabled, false);
+ } else {
+ UI::ChangeWidget(`id("email"), `Enabled, true);
+ }
+ while (true)
+ {
+ any ret2 = UI::UserInput();
+ if (ret2 == `ok)
+ {
+ map new_entry = (ret==`add) ? $[] :
+ find(map m,initial_set,
+ ``{return (m["kind"]:"" ==
current_kind && m["name"]:"" == current_name);});
+ new_entry["kind"] = (string)
UI::QueryWidget(`id(`rb), `CurrentButton);
+ new_entry["name"] = (string)
UI::QueryWidget(`id(`name), `Value);
+ if (ret == `add)
+ {
+ initial_set = add (initial_set,
new_entry);
+ }
+ break;
+ }
+ else if (ret2 == `cancel)
+ {
+ break;
+ }
+ }
+ UI::CloseDialog ();
+ } else if (ret == `delete) {
+ integer current_item =
(integer)UI::QueryWidget(`id(`id_adv_subject_alt_name), `CurrentItem);
+ term table_item = (term)
UI::QueryWidget(`id(`id_adv_subject_alt_name), `Item(current_item));
+
+ if (table_item == nil)
+ {
+ Popup::Error (_("No item has been selected."));
+ continue;
+ }
+ string current_kind = (string) table_item[1]:"";
+ string current_name = (string) table_item[2]:"";

Actually 'foo[index]:default' already includes casting the result to
the type of 'default', so (string) is superfluous here.

Really? Interesting feature. Is it documented?...so if I have table_item[1]:nil
then type is any?


+
+ if (Popup::YesNoHeadline (
+ // To translators: ContinueCancel Popup headline
+ _("Delete"),
+ // To translators: ContinueCancel Popup
+ _("Really delete this entry?")))
+ {
+ initial_set = filter( map element, initial_set, ``{
+ return (element["kind"]:"" != current_kind ||
element["name"]:"" != current_name );
+ });
+ }
+ }
+ } while ( ret != `ok && ret != `cancel );

^^^ yuck. do we have a plan how to improve this "best UI practice"?

This is common event loop, welcome to 90`


+ boolean ca_crit = (boolean)
UI::QueryWidget(`id(`id_adv_cri_subject_alt_name), `Value);
+ UI::CloseDialog();
+ return (ret == `ok) ? [initial_set,ca_crit] : nil;
+ }


/**
@@ -97,7 +242,7 @@
),
`HBox(`HWeight (1,`TextEntry(`id(`email),
_("E-Mail"), CaMgm::prop_email)),
`HSpacing(2),
- `HWeight (1,`Empty())
+ `HWeight (1,`PushButton(`id(`alt),"&Edit
Alternative Names"))
)
);

@@ -119,12 +264,21 @@
// Get the user input.
//
any ret = nil;
+ list<map> temp_alt_names = CaMgm::prop_subject_alt_name_list;
+ boolean temp_cri_alt = CaMgm::prop_adv_cri_issuer_alt_name;

repeat
{
ret = Wizard::UserInput();

- if (ret == `next
+ if (ret == `alt)
+ {
+ any ret = editAltNames(temp_alt_names);

hey! how about "list names_and_criminalsorwhatever = ..." ?

Damn, it looks like I don't merge last fix, which stop overwritting ret
variable, stupid svn :(

Thanks for review
Pepa


+ if (ret != nil)
+ temp_alt_names = ((list)ret)[0]:temp_alt_names;
+ temp_cri_alt = ((list)ret)[1]:temp_cri_alt;
+ }
+ else if (ret == `next
||ret == `back)
{
confirmPassword = (string) UI::QueryWidget(`id(`pw2),
`Value);
@@ -183,6 +337,9 @@
CaMgm::prop_organisationUnit = (string)
UI::QueryWidget(`id(`id_organisationUnit), `Value);
CaMgm::prop_locality = (string)
UI::QueryWidget(`id(`id_locality), `Value);
CaMgm::prop_state = (string)
UI::QueryWidget(`id(`id_state), `Value);
+ CaMgm::prop_subject_alt_name_list = temp_alt_names;
+ CaMgm::prop_adv_cri_issuer_alt_name = temp_cri_alt;
+ y2milestone("alt names %1",
CaMgm::prop_subject_alt_name_list);
}
}
}

Modified: trunk/ca-management/src/new_cert_read_write.ycp
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/ca-management/src/new_cert_read_write.ycp?rev=64348&r1=64347&r2=64348&view=diff
==============================================================================
--- trunk/ca-management/src/new_cert_read_write.ycp (original)
+++ trunk/ca-management/src/new_cert_read_write.ycp Tue Jun 14 14:53:17 2011
@@ -760,6 +760,7 @@
foreach(map elem, CaMgm::prop_subject_alt_name_list, {


CaMgm::adv_subject_alt_name_list = add (CaMgm::adv_subject_alt_name_list,
elem);

});
+ CaMgm::adv_cri_issuer_alt_name =
CaMgm::prop_adv_cri_issuer_alt_name;
}
if (kind == "Client Certificate")
{



--
Josef Reidinger
Appliance Toolkit team
maintaining parts of webyast and SLMS
author of rubygems - studio_api and net_observer (coauthor)
--
To unsubscribe, e-mail: yast-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: yast-devel+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups
References