#well, this is what we have for now. getting better.
tie my %rights, 'Tie::IxHash',
+
+ ###
+ # contact rights
+ ###
+ 'Contact and Prospect rights' => [
+ 'New prospect',
+ 'View prospect',
+ 'Edit prospect',
+ 'List prospects',
+ 'Edit contact', #!
+ #'New contact',
+ #'View customer contacts',
+ #'List contacts',
+ ],
###
# basic customer rights
'View customer',
#'View Customer | View tickets',
'Edit customer',
+ 'Edit referring customer',
'View customer history',
'Cancel customer',
'Complimentary customer', #aka users-allow_comp
'Change customer package',
'Bulk change customer packages',
'Edit customer package dates',
+ 'Discount customer package', #NEW
+ 'Custom discount customer package', #NEW
'Customize customer package',
'Suspend customer package',
'Suspend customer package later',
'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
'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
=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