localize() is also using call_prov() now - requires authentication

3.2
Daniel Tiefnig 15 years ago
parent 72bf2c9417
commit 2653e42ffc

@ -87,15 +87,15 @@ sub end : ActionClass('RenderView') {
unless($c->response->{status} =~ /^3/) { # only if not a redirect
if(exists $c->session->{prov_error}) {
$c->stash->{prov_error} =
$c->model('Provisioning')->localize($c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->session->{prov_error});
delete $c->session->{prov_error};
}
if(exists $c->session->{messages}) {
$c->stash->{messages} = $c->model('Provisioning')->localize($c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->stash->{messages} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->session->{messages});
delete $c->session->{messages};
}

@ -39,8 +39,7 @@ sub index : Private {
}
}
} else {
$c->session->{prov_error} = 'Client.Syntax.LoginMissingPass' unless length $password;
$c->session->{prov_error} = 'Client.Syntax.LoginMissingUsername' unless length $username;
$c->session->{prov_error} = 'Client.Voip.AuthFailed';
}
$c->response->redirect($c->uri_for('/'));

@ -58,7 +58,9 @@ sub end : ActionClass('RenderView') {
}
if(exists $c->session->{messages}) {
$c->stash->{messages} = $c->model('Provisioning')->localize($c, $c->session->{messages});
$c->stash->{messages} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->session->{messages});
delete $c->session->{messages};
}
}

@ -147,8 +147,8 @@ sub detail : Local {
eval { $c->session->{subscriber}{aliases} = [ sort @{$c->session->{subscriber}{aliases}} ] };
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber}{subscriber_id} = $subscriber_id;
$c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
'Web.Subscriber.Lock'.$$preferences{lock})
if $$preferences{lock};
@ -602,8 +602,8 @@ sub preferences : Local {
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber}{subscriber_id} = $subscriber_id;
$c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
'Web.Subscriber.Lock'.$$preferences{lock})
if $$preferences{lock};
@ -697,8 +697,8 @@ sub preferences : Local {
max_occur => $$pref{max_occur},
description => encode_entities($$pref{description}),
error => $c->session->{messages}{$$pref{preference}}
? $c->model('Provisioning')->localize($c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
? $c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->session->{messages}{$$pref{preference}})
: undef,
};
@ -1022,8 +1022,8 @@ sub call_data : Local {
for(1 .. 12) {
push @localized_months,
$c->model('Provisioning')->localize($c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
sprintf("Web.Months.%02d", $_));
}
@ -1479,9 +1479,9 @@ sub edit_speed_dial_slots : Local {
}
delete $c->session->{updateslotidtxt};
$updateerrormsg = $c->session->{messages}{updateerr} ?
$c->model('Provisioning')->localize($c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->session->{messages}{updateerr})
$c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->session->{messages}{updateerr})
: undef;
#delete $c->session->{updateerrmsg};
}

@ -103,25 +103,24 @@ sub login {
}
sub localize {
my ($self, $lang, $messages) = @_;
my ($self, $c, $lang, $messages) = @_;
return unless defined $messages;
if(! defined $c->session->{admin}) {
if($messages eq 'Client.Voip.AuthFailed') {
return 'Login failed, please verify username and password.';
}
return;
}
if(ref $messages eq 'HASH') {
my %translations;
foreach my $msgname (keys %$messages) {
$translations{$msgname} = eval { $$self{voip}->get_localized_string({language => $lang, code => $$messages{$msgname}}) };
unless(defined $translations{$msgname}) {
$translations{$msgname} = eval { $$self{voip}->get_localized_string({language => $lang, code => 'Server.Internal'}) };
}
$translations{$msgname} = $self->_translate($c, $msgname, $lang);
}
return \%translations;
} elsif(!ref $messages) {
my $translation = eval { $$self{voip}->get_localized_string({language => $lang, code => $messages}) };
unless(defined $translation) {
$translation = eval { $$self{voip}->get_localized_string({language => $lang, code => 'Server.Internal'}) };
}
return $translation;
return $self->_translate($c, $messages, $lang);
}
return;
@ -148,6 +147,28 @@ sub _get_admin {
}
}
sub _translate {
my ($self, $c, $code, $lang) = @_;
my $translation;
eval {
$self->call_prov( $c, 'voip', 'get_localized_string',
{ language => $lang, code => $code },
\$translation,
)
};
unless(defined $translation) {
eval {
$self->call_prov( $c, 'voip', 'get_localized_string',
{ language => $lang, code => 'Server.Internal' },
\$translation,
)
};
}
return $translation;
}
=head1 BUGS AND LIMITATIONS
=over

@ -282,8 +282,8 @@ sub prepare_tt_prefs {
max_occur => $$pref{max_occur},
description => encode_entities($$pref{description}),
error => $c->session->{messages}{$$pref{preference}}
? $c->model('Provisioning')->localize($c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
? $c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
$c->session->{messages}{$$pref{preference}})
: undef,
};

Loading…
Cancel
Save