'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
],
'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
],
+
+ ###
+ # note/attachment rights...
+ ###
+ 'Customer note and attachment rights' => [
+ 'Add customer note', #NEW
+ 'Edit customer note', #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...
=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