$svcnum<\/B>/;
+<% $svclabel %>
+% } else {
+<% mt("Service # (NEW)") |h %>
+% }
+
<% ntable("#cccccc",2) %>
- Service |
+ <% mt('Service') |h %> |
<% $part_svc->svc %> |
- Username |
-
- MAXLENGTH=<% $ulen %>>
- |
+ <% mt('Username') |h %> |
+% if ( $svcnum && $conf->exists('svc_acct-no_edit_username') ) {
+ <% $svc_acct->username() %> |
+
+% } else {
+
+ MAXLENGTH=<% $ulen %>>
+ |
+% }
%if ( $part_svc->part_svc_column('_password')->columnflag ne 'F' ) {
- Password |
+ <% mt('Password') |h %> |
MAXLENGTH=<% $pmax %>>
-
+
|
%}else{
%}
-
+
%
%my $sec_phrase = $svc_acct->sec_phrase;
%if ( $conf->exists('security_phrase')
% && $part_svc->part_svc_column('sec_phrase')->columnflag ne 'F' ) {
-%
-
- Security phrase |
+ <% mt('Security phrase') |h %> |
- (for forgotten passwords)
+ (<% mt('for forgotten passwords') |h %>)
|
% } else {
-
% }
%
@@ -80,7 +89,6 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
%if ( $part_svc->part_svc_column('domsvc')->columnflag eq 'F' ) {
%
-
% } else {
%
@@ -89,7 +97,7 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
% if ( $domsvc ) {
% my $svc_domain = qsearchs('svc_domain', { 'svcnum' => $domsvc, } );
% if ( $svc_domain ) {
-% $svc_domain{$svc_domain->svcnum} = $svc_domain;
+% $svc_domain{$svc_domain->svcnum} = $svc_domain->domain;
% } else {
% warn "unknown svc_domain.svcnum for svc_acct.domsvc: $domsvc";
% }
@@ -100,11 +108,9 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
% 'pkgnum' => $pkgnum,
% )
% );
-%
-
- Domain |
+ <% mt('Domain') |h %> |
|
% }
-<% include('/elements/tr-select-svc_pbx.html',
+
+% if ( $communigate ) {
+
+
+ <% mt('Aliases') |h %> |
+ |
+
+
+% } else {
+
+% }
+
+
+<& /elements/tr-select-svc_pbx.html,
'curr_value' => $svc_acct->pbxsvc,
'part_svc' => $part_svc,
'cust_pkg' => $cust_pkg,
- )
-%>
+&>
%#pop
%my $popnum = $svc_acct->popnum || 0;
%if ( $part_svc->part_svc_column('popnum')->columnflag eq 'F' ) {
%
-
% } else {
-
- Access number |
+ <% mt('Access number') |h %> |
<% FS::svc_acct_pop::popselector($popnum) %> |
% }
+
+%#tower (huh)
+%if ( $conf->exists('svc_acct-tower_sector')
+% && $part_svc->part_svc_column('sectornum')->columnflag ne 'F' ) {
+ <& /elements/tr-select-tower_sector.html,
+ 'curr_value' => $svc_acct->sectornum,
+ #'part_svc' => $part_svc,
+ #'cust_pkg' => $cust_pkg,
+ &>
+%} else {
+
+%}
+
% #uid/gid
% foreach my $xid (qw( uid gid )) {
%
@@ -154,7 +182,6 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
%
% if ( length($svc_acct->$xid()) ) {
-
<% uc($xid) %> |
<% $svc_acct->$xid() %> |
@@ -162,11 +189,9 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
% }
-
% } else {
-
<% uc($xid) %> |
@@ -182,13 +207,12 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
% && ! $svc_acct->finger ) {
%
-
% } else {
- Real Name |
+ <% mt('Real Name') |h %> |
|
@@ -206,7 +230,7 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
- Home directory |
+ <% mt('Home directory') |h %> |
|
% }
@@ -218,13 +242,12 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
% ) {
%
-
% } else {
- Shell |
+ <% mt('Shell') |h %> |
|
% }
-
-% if ( $communigate ) {
-
-
- Mailbox type |
-
-
- |
-
-
-
-
- Mailbox type |
- XXX checkbox thingie!!
- |
-
-
-
-% } else {
-
-
-% }
-
-
-% if ( $part_svc->part_svc_column('quota')->columnflag eq 'F' ) {
-
-% } else {
-% my $quota_label = $communigate ? 'Mail storage limit' : 'Quota';
-
- <% $quota_label %> |
- |
-
-% }
-
-% tie my %cgp_label, 'Tie::IxHash',
-% 'file_quota' => 'File storage limit',
-% 'file_maxnum' => 'Number of files limit',
-% 'file_maxsize' => 'File size limit',
-% ;
-%
-% foreach my $key (keys %cgp_label) {
-%
-% if ( !$communigate || $part_svc->part_svc_column($key)->columnflag eq 'F' ){
-
-% } else {
-
-
- <% $cgp_label{$key} %> |
- |
-
-
-% }
-% }
-
+<& svc_acct/communigate.html,
+ 'svc_acct' => $svc_acct,
+ 'part_svc' => $part_svc,
+ 'communigate' => $communigate,
+&>
% if ( $part_svc->part_svc_column('slipip')->columnflag =~ /^[FA]$/ ) {
% } else {
- IP |
+ <% mt('IP') |h %> |
|
% }
@@ -321,12 +288,12 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
% my $tf = $uf . "_threshold";
% if ( $curuser->access_right('Edit usage') ) {
- <% $label{$uf} %> remaining |
- (blank disables) |
+ <% mt("[_1] remaining",$label{$uf}) |h %> |
+ (<% mt('blank disables') |h %>) |
- <% $label{$uf} %> threshold |
- (blank disables) |
+ <% mt("[_1] threshold",$label{$uf}) |h %> |
+ (<% mt('blank disables') |h %>) |
% }else{
@@ -340,11 +307,9 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
%
% if ( $part_svc->part_svc_column($r)->columnflag =~ /^[FA]$/ ) {
-
% } else {
-
<% $FS::raddb::attrib{$a} %> |
|
@@ -353,39 +318,49 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
% }
-
- RADIUS groups |
-% if ( $part_svc->part_svc_column('usergroup')->columnflag eq 'F' ) {
-
-
- <% join(' ', @groups) %> |
+ <% mt('RADIUS groups') |h %> |
+% if ( $part_svc_usergroup->columnflag eq 'F' ) {
+ <% join(' ', @groupnames) %> |
% } else {
-
-
- <% FS::svc_acct::radius_usergroup_selector( \@groups ) %> |
+% my $radius_group_selected = '';
+% if ( $svc_acct->svcnum ) {
+% $radius_group_selected = join(',',$svc_acct->radius_groups('groupnum'));
+% }
+% elsif ( !$svc_acct->svcnum && $part_svc_usergroup->columnflag eq 'D' ) {
+% $radius_group_selected = $part_svc_usergroup->columnvalue;
+% }
+ <& /elements/select-radius_group.html,
+ curr_value => $radius_group_selected,
+ element_name => 'radius_usergroup',
+ multiple => 1,
+ &>
+ |
% }
-
% foreach my $field ($svc_acct->virtual_fields) {
% # If the flag is X, it won't even show up in $svc_acct->virtual_fields.
% if ( $part_svc->part_svc_column($field)->columnflag ne 'F' ) {
-
<% $svc_acct->pvf($field)->widget('HTML', 'edit', $svc_acct->getfield($field)) %>
% }
% }
-
+% if ( $captcha_url ) {
+
+<% mt('Enter the word shown above:') |h %>
+
+% }
+
-<% include('/elements/footer.html') %>
+<& /elements/footer.html &>
<%init>
@@ -420,9 +395,11 @@ if ( $cgi->param('error') ) {
$part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
die "No part_svc entry!" unless $part_svc;
- $svc_acct = new FS::svc_acct({svcpart => $svcpart});
+ $svc_acct = new FS::svc_acct({svcpart => $svcpart});
+
+ $svcnum='';
- $svcnum='';
+ $svc_acct->password_recover('Y'); #default. hmm.
} else { #editing
@@ -484,9 +461,15 @@ unless ( $svcnum || $cgi->param('error') ) { #adding
}
+my $part_svc_usergroup = $part_svc->part_svc_column('usergroup');
#fixed radius groups always override & display
-if ( $part_svc->part_svc_column('usergroup')->columnflag eq 'F' ) {
- @groups = split(',', $part_svc->part_svc_column('usergroup')->columnvalue);
+my @groupnames; # only used for display of Fixed RADIUS groups
+if ( $part_svc_usergroup->columnflag eq 'F' ) {
+ @groups = split(',',$part_svc_usergroup->columnvalue);
+ @groupnames = map { $_->long_description }
+ qsearch({ 'table' => 'radius_group',
+ 'extra_sql' => "where groupnum in (".$part_svc_usergroup->columnvalue.")",
+ }) if length($part_svc_usergroup->columnvalue);
}
my $action = $svcnum ? 'Edit' : 'Add';
@@ -496,22 +479,17 @@ my $svc = $part_svc->getfield('svc');
my $otaker = getotaker;
my $username = $svc_acct->username;
-my $password;
-my $password_encryption = $svc_acct->_password_encryption;
-my $password_encoding = $svc_acct->_password_encoding;
-
-if($svcnum) {
- if($password = $svc_acct->get_cleartext_password) {
- if (! $conf->exists('showpasswords')) {
- $password = '*HIDDEN*';
- }
- }
- elsif($svc_acct->_password and $password_encryption ne 'plain') {
+
+my $password = '';
+if ( $cgi->param('error') ) {
+ $password = $cgi->param('clear_password');
+} elsif ( $svcnum ) {
+ my $password_encryption = $svc_acct->_password_encryption;
+ if ( $password = $svc_acct->get_cleartext_password ) {
+ $password = '*HIDDEN*' unless $conf->exists('showpasswords');
+ } elsif( $svc_acct->_password and $password_encryption ne 'plain' ) {
$password = "(".uc($password_encryption)." encrypted)";
}
- else {
- $password = '';
- }
}
my $ulen =
@@ -529,4 +507,18 @@ sub max {
(sort(@_))[-1]
}
+my $captcha_url;
+my ($export_google) = $part_svc->part_export('acct_google');
+if ( $export_google ) {
+ my $error = $export_google->auth_error;
+ if ( $error ) {
+ if ( $error->{'captcha_url'} ) {
+ $captcha_url = $error->{'captcha_url'};
+ }
+ else {
+ $cgi->param('error', $error->{'message'});
+ }
+ } #if $error
+}
+
%init>