merge NG auth, RT#21563
[freeside.git] / httemplate / edit / access_user.html
index 065e60c..b087943 100644 (file)
@@ -1,32 +1,32 @@
 <% include( 'elements/edit.html',
-                 'name'   => 'Internal User',
+                 'name'   => 'Employee',
                  'table'  => 'access_user',
                  'fields' => [
                                'username',
-                               { field=>'_password', type=>'password' },
-                               { field=>'_password2', type=>'password' },
+                               @pw_fields,
                                'last',
                                'first',
+                               { field=>'user_custnum', type=>'search-cust_main', },
                                { field=>'disabled', type=>'checkbox', value=>'Y' },
                              ],
                  'labels' => { 
-                               'usernum'   => 'User number',
-                               'username'  => 'Username',
-                               '_password' => 'Password',
-                               '_password2'=> 'Re-enter Password',
-                               'last'      => 'Last name',
-                               'first'     => 'First name',
-                               'disabled'  => 'Disable employee',
+                               'usernum'      => 'User number',
+                               'username'     => 'Username',
+                               '_password'    => 'Password',
+                               '_password2'   => 'Re-enter Password',
+                               'last'         => 'Last name',
+                               'first'        => 'First name',
+                               '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 {
                      my $access_user = shift;
 
-                     '<BR>Internal Access Groups<BR>'.
+                     '<BR>Employee Groups<BR>'.
                      ntable("#cccccc",2).
                      '<TR><TD>'.
                      include( '/elements/checkboxes-table.html',
                      '</TR></TD></TABLE>'
                      ;
                    },
+                 'onsubmit'  => 'check_user_custnum_search',
+                 'html_foot' => $check_user_custnum_search,
            )
 %>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my @pw_fields =
+  FS::Auth->auth_class->can('change_password')
+    ? ( { field=>'_password',  type=>'password' },
+        { field=>'_password2', type=>'password' },
+      )
+    : ();
+
+my $check_user_custnum_search = <<END;
+  <SCRIPT TYPE="text/javascript">
+    function check_user_custnum_search(what) {
+      while ( user_custnum_search_active ) {
+        // javascript needs ambien
+      }
+      return true;
+    }
+  </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>