summaryrefslogtreecommitdiff
path: root/httemplate/edit
diff options
context:
space:
mode:
authormark <mark>2010-10-04 22:17:22 +0000
committermark <mark>2010-10-04 22:17:22 +0000
commit22136ecc8353ff82c9a402218ce849db6cf05dab (patch)
tree209f07565e700c1749ac6645768c9513b0dc7bd8 /httemplate/edit
parent594f6993d818db68b15ecfb6c339e5d23be50950 (diff)
fs_ system accounts, RT#8731
Diffstat (limited to 'httemplate/edit')
-rw-r--r--httemplate/edit/access_user.html18
-rw-r--r--httemplate/edit/process/access_user.html10
2 files changed, 25 insertions, 3 deletions
diff --git a/httemplate/edit/access_user.html b/httemplate/edit/access_user.html
index 22cf89621..86ce25374 100644
--- a/httemplate/edit/access_user.html
+++ b/httemplate/edit/access_user.html
@@ -20,9 +20,8 @@
'user_custnum' => 'Customer (optional)',
'disabled' => 'Disable employee',
},
- 'edit_callback' => sub { my( $c, $o ) = @_;
- $o->set('_password', '');
- },
+ 'edit_callback' => \&edit_callback,
+ 'field_callback'=> \&field_callback,
'viewall_dir' => 'browse',
'html_bottom' =>
sub {
@@ -62,4 +61,17 @@ my $check_user_custnum_search = <<END;
</SCRIPT>
END
+sub edit_callback {
+ my ($c, $o, $f, $opt) = @_;
+ $o->set('_password', '');
+}
+
+sub field_callback {
+ my ($c, $o, $f) = @_;
+ if($f->{'type'} eq 'password' and $o->is_system_user) {
+ $f->{'type'} = 'hidden';
+ $f->{'disabled'} = 1;
+ }
+}
+
</%init>
diff --git a/httemplate/edit/process/access_user.html b/httemplate/edit/process/access_user.html
index e6258a9b1..8e7e70a06 100644
--- a/httemplate/edit/process/access_user.html
+++ b/httemplate/edit/process/access_user.html
@@ -10,6 +10,7 @@
'process_m2m' => { 'link_table' => 'access_usergroup',
'target_table' => 'access_group',
},
+ 'precheck_callback'=> \&precheck_callback,
)
%>
% }
@@ -23,4 +24,13 @@ if ( FS::Conf->new->exists('disable_acl_changes') ) {
die "shouldn't be reached";
}
+sub precheck_callback {
+ my $cgi = shift;
+ my $o = FS::access_user->new({username => $cgi->param('username')});
+ if( $o->is_system_user and !$cgi->param('usernum') ) {
+ $cgi->param('username','');
+ return "username '".$o->username."' reserved for system account."
+ }
+ return '';
+}
</%init>