handle the usage_class-less details in svc_phone sections
[freeside.git] / FS / FS / AccessRight.pm
index fc309fa..050121a 100644 (file)
@@ -94,6 +94,8 @@ 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 
@@ -150,6 +152,7 @@ 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
@@ -205,6 +208,8 @@ tie my %rights, 'Tie::IxHash',
   '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
@@ -223,6 +228,7 @@ 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',
@@ -263,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 },
 
@@ -285,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