diff options
Diffstat (limited to 'mdkapplet-enterprise-update-helper')
-rwxr-xr-x | mdkapplet-enterprise-update-helper | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/mdkapplet-enterprise-update-helper b/mdkapplet-enterprise-update-helper deleted file mode 100755 index 31550d36..00000000 --- a/mdkapplet-enterprise-update-helper +++ /dev/null @@ -1,169 +0,0 @@ -#!/usr/bin/perl -################################################################################ -# Mandriva Online # -# # -# Copyright (C) 2009-2010 Mandriva # -# # -# Thierry Vignaud <tvignaud at mandriva dot com> # -# # -# This program is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License Version 2 as # -# published by the Free Software Foundation. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # -################################################################################ - -use strict; -use lib qw(/usr/lib/libDrakX /usr/lib/libDrakX/drakfirsttime); -use standalone; # for explanations -use common; -use run_program; -use feature 'state'; - -BEGIN { unshift @::textdomains, 'mdkonline' } - -use mygtk2 qw(gtknew); #- do not import gtkadd which conflicts with ugtk2 version -use ugtk2 qw(:all); -use urpm::cfg; -use mdkonline; -use mdkapplet_gui; -use interactive; - -use XML::Simple; -use URI::Escape; -use LWP::UserAgent; -use HTTP::Request::Common; -use HTTP::Request; - -my $version; -foreach my $opt (@ARGV) { - if ($opt =~ /--(rpm-root|urpmi-root)=(.*)/) { - $::rpmdrake_options{$1}[0] = $2; - } else { - $version = $opt; - } -} -$version or die "usage: mdkapplet-enterprise-update-helper <distrib_version>\n"; - -get_restricted_authentication(); - -ugtk2::exit(0); - - -sub get_restricted_authentication() { - my $w = ugtk2->new(N("Adding an additional package medium"), width => $width + 20); - my ($password_w, $email_w, $password); - - $password_w = gtknew('Entry'); - $password_w->set_visibility(0); - # WARNING: WON'T WORK IF EVER EMBEDDED - $w->{real_window}->signal_connect(destroy => sub { $password = $password_w->get_text }); - require interactive::gtk; - - my $res = - fill_n_run_portable_dialog( - $w, - [ - get_banner(N("Adding an additional package medium")), - gtknew('Label_Left', text => N("Please fill in your account ID to add an additional package medium"), - @common), - gtknew('HButtonBox', layout => 'start', children_tight => [ - interactive::gtk::add_padding( - new_link_button('https://my.mandriva.com/info', N("More information on your user account"))) - ]), - gtknew('Table', col_spacings => 5, row_spacings => 5, children => [ - [ N("Your email"), $email_w = gtknew('Entry') ], - [ N("Your password"), $password_w ], - ]), - gtknew('HButtonBox', layout => 'start', children_tight => [ - interactive::gtk::add_padding( - new_link_button('https://my.mandriva.com/reset/password/', N("Forgotten password"))) - ]), - create_okcancel($w, N("Next"), N("Cancel")), - ]); - - my $email = $email_w->get_text; - if ($res) { - if ($email && $password) { - add_enterprise_update_medium($email, $password); - } else { - interactive->vnew->ask_warn(N("Error"), N("Password and email cannot be empty.")); - goto &get_restricted_authentication; - } - } else { - ugtk2::exit(0); - } -} - -sub has_mes5_rights { - my ($ref) = @_; - $ref->{data}{groups}{'es5-prod'} || $ref->{data}{groups}{'es5-demo'}; -} - -my $error; -sub add_enterprise_update_medium { - my ($email, $password) = @_; - - my $res = get_from("https://my.mandriva.com/rest/authenticate", - [ 'username', $email, 'password', $password, - 'return', 'userdata' ]); - my $ref = xml2perl($res); - - if ($ref->{code} != 0) { - my $in = interactive->vnew; - $in->ask_warn(N("Error"), N("An error occurred") . "\n" . $ref->{message}); - goto &get_restricted_authentication; - } elsif (!has_mes5_rights($ref)) { - no_rights_dialog(); - } else { - $error = 0; - my $arch = urpm::cfg::get_arch(); - actually_add_enterprise_update_medium($ref, $password, $arch) - or adding_media_failed(); - if (!$error) { - #interactive->vnew->ask_okcancel(N("Error"), N("An error occurred while adding medium")); - my $w = ugtk2->new(N("Successfully added media %s.", 'Update'), grab => 1); - $w->_ask_okcancel(N("Successfully added media %s.", 'Update'), N("Ok"), undef); - ugtk2::main($w); - } - } -} - -sub no_rights_dialog() { - my $w = ugtk2->new(N("Adding an additional package medium"), width => $width + 20); - - fill_n_run_portable_dialog( - $w, - [ - get_banner(N("Adding an additional package medium")), - gtknew('Label_Left', text => N("Your Mandriva account does not have %s download subscription enabled.", translate_product()), - @common), - gtknew('HButtonBox', layout => 'start', children_tight => [ - interactive::gtk::add_padding( - new_link_button('http://www2.mandriva.com/linux/server/', N("More Information"))) - ]), - create_okcancel($w, N("Close"), undef), - ]); -} - -sub adding_media_failed { - $error = 1; - interactive->vnew->ask_warn(N("Error"), N("An error occurred while adding medium")); - goto &get_restricted_authentication; -} - -sub actually_add_enterprise_update_medium { - my ($ref, $password, $arch) = @_; - $password = uri_escape($password); - my @options = get_urpmi_options(); - my $email = uri_escape($ref->{data}{email}); - my $uri = "https://$email:$password\@download.mandriva.com/$version/rpms/$arch/"; - run_program::raw(@options, '--update', '--distrib', $uri); -} |