customer tags, RT#9192
[freeside.git] / FS / FS / AccessRight.pm
index af480df..050121a 100644 (file)
@@ -94,11 +94,12 @@ tie my %rights, 'Tie::IxHash',
     'View customer',
     #'View Customer | View tickets',
     'Edit customer',
+    'Edit customer tags',
+    'Edit referring customer',
+    'View customer history',
     'Cancel customer',
     'Complimentary customer', #aka users-allow_comp 
     { rightname=>'Delete customer', desc=>"Enable customer deletions. Be very careful! Deleting a customer will remove all traces that this customer ever existed! It should probably only be used when auditing a legacy database. Normally, you cancel all of a customer's packages if they cancel service." }, #aka. deletecustomers
-    'Add customer note', #NEW
-    'Edit customer note', #NEW
     'Bill customer now', #NEW
     'Bulk send customer notices', #NEW
   ],
@@ -140,6 +141,7 @@ tie my %rights, 'Tie::IxHash',
     'Edit www config', #NEW
     'Edit domain catchall', #NEW
     'Edit domain nameservice', #NEW
+    'Manage domain registration',
   
     { rightname=>'View/link unlinked services', global=>1 }, #not agent-virtualizable without more work
   ],
@@ -150,7 +152,9 @@ tie my %rights, 'Tie::IxHash',
   'Customer invoice / financial info rights' => [
     'View invoices',
     'Resend invoices', #NEWNEW
+    'Delete invoices', #new, but no need to phase in
     'View customer tax exemptions', #yow
+    'Add customer tax adjustment', #new, but no need to phase in
     'View customer batched payments', #NEW
     'View customer pending payments', #NEW
     'Edit customer pending payments', #NEW
@@ -197,6 +201,23 @@ tie my %rights, 'Tie::IxHash',
     
   
   ],
+  ###
+  # note/attachment rights...
+  ###
+  'Customer note and attachment rights' => [
+    'Add customer note', #NEW
+    'Edit customer note', #NEW
+    'View attachments', #NEW
+    'Browse attachments', #NEW
+    'Download attachment', #NEW
+    'Add attachment', #NEW
+    'Edit attachment', #NEW
+    'Delete attachment', #NEW
+    'View deleted attachments', #NEW
+    'Undelete attachment', #NEW
+    'Purge attachment', #NEW
+  ],
   
   ###
   # report/listing rights...
@@ -207,9 +228,11 @@ tie my %rights, 'Tie::IxHash',
     'List invoices',
     'List packages',
     'List services',
+    'List service passwords',
   
     { rightname=> 'List rating data', desc=>'Usage reports', global=>1 },
     'Billing event reports',
+    'Receivables report',
     'Financial reports',
   ],
   
@@ -246,7 +269,10 @@ tie my %rights, 'Tie::IxHash',
   
     'Edit billing events',
     { rightname=>'Edit global billing events', global=>1 },
-  
+
+    'Edit templates',
+    { rightname=>'Edit global templates', global=>1 },
+
     { rightname=>'Dialup configuration' },
     { rightname=>'Dialup global configuration', global=>1 },
 
@@ -268,14 +294,38 @@ tie my %rights, 'Tie::IxHash',
   
 =item rights
 
-Returns a list of right names.
+Returns the full list of right names.
 
 =cut
   
-  sub rights {
+sub rights {
   #my $class = shift;
   map { ref($_) ? $_->{'rightname'} : $_ } map @{ $rights{$_} }, keys %rights;
-  }
+}
+
+=item default_superuser_rights
+
+Most (but not all) right names.
+
+=cut
+
+sub default_superuser_rights {
+  my $class = shift;
+  my %omit = map { $_=>1 } (
+    'Delete customer',
+    'Delete invoices',
+    'Delete payment',
+    'Delete credit', #?
+    'Delete refund', #?
+    'Time queue',
+    'Redownload resolved batches',
+    'Raw SQL',
+    'Configuration download',
+  );
+
+  no warnings 'uninitialized';
+  grep { ! $omit{$_} } $class->rights;
+}
   
 =item rights_info