X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FAccessRight.pm;h=322fa3d121991e8bc3aa3731772d3df15d47990b;hb=e491946343abd5b7dddfd19f20a44ceb767bd37b;hp=d192125208f741b6c6f038d2c716669fafa15e88;hpb=283ea2b5137ae3ec36882b492e6de024b0ce6027;p=freeside.git diff --git a/FS/FS/AccessRight.pm b/FS/FS/AccessRight.pm index d19212520..322fa3d12 100644 --- a/FS/FS/AccessRight.pm +++ b/FS/FS/AccessRight.pm @@ -94,15 +94,11 @@ tie my %rights, 'Tie::IxHash', 'View customer', #'View Customer | View tickets', 'Edit customer', + '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 - 'Download attachment', #NEW - 'Add attachment', #NEW - 'Edit attachment', #NEW 'Bill customer now', #NEW 'Bulk send customer notices', #NEW ], @@ -155,6 +151,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 @@ -203,6 +200,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... @@ -213,6 +227,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', @@ -253,7 +268,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 }, @@ -275,14 +293,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