@@ -, +, @@ at least upload_general_files. Try the URL [yourserver]/cgi-bin/koha/tools/upload.pl You should have no access to the upload form. the upload from step 3. You should not see a Delete button. Delete the upload. parameter "plugin=1" to the URL. You should not see the Tools menu. --- Koha/Upload.pm | 4 ++-- koha-tmpl/intranet-tmpl/prog/en/includes/tools-menu.inc | 3 +++ koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tt | 5 +++++ koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt | 13 ++++++++++--- tools/upload.pl | 11 +++++++---- 5 files changed, 27 insertions(+), 9 deletions(-) --- a/Koha/Upload.pm +++ a/Koha/Upload.pm @@ -170,7 +170,7 @@ sub get { my ( @rv, $res); foreach my $r ( @$temp ) { undef $res; - foreach( qw[id hashvalue filesize uploadcategorycode public permanent] ) { + foreach( qw[id hashvalue filesize uploadcategorycode public permanent owner] ) { $res->{$_} = $r->{$_}; } $res->{name} = $r->{filename}; @@ -366,7 +366,7 @@ sub _lookup { my ( $self, $params ) = @_; my $dbh = C4::Context->dbh; my $sql = q| -SELECT id,hashvalue,filename,dir,filesize,uploadcategorycode,public,permanent +SELECT id,hashvalue,filename,dir,filesize,uploadcategorycode,public,permanent,owner FROM uploaded_files |; my @pars; --- a/koha-tmpl/intranet-tmpl/prog/en/includes/tools-menu.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/tools-menu.inc @@ -117,4 +117,7 @@ [% IF ( CAN_user_tools_edit_quotes ) %]
  • Quote editor
  • [% END %] + [% IF ( CAN_user_tools_upload_general_files ) %] +
  • Upload any file
  • + [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tt @@ -109,6 +109,11 @@
    Manage EDIfact transmissions
    [% END %] + [% IF ( CAN_user_tools_upload_general_files ) %] +
    Upload
    +
    Upload any type of file, manage uploads
    + [% END %] +
    --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt @@ -182,7 +182,9 @@ Choose  [% END %] Download  - Delete + [% IF record.owner == owner || CAN_user_tools_upload_manage %] + Delete + [% END %] [% END %] @@ -334,7 +336,6 @@ $(document).ready(function() {

    Upload

    - [% PROCESS submitter %] @@ -356,6 +357,12 @@ $(document).ready(function() {
    - +[% IF !plugin %] +
    + [% INCLUDE 'tools-menu.inc' %] +
    +[% END %] + + [% INCLUDE 'intranet-bottom.inc' %] --- a/tools/upload.pl +++ a/tools/upload.pl @@ -38,13 +38,14 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => '*' }, + flagsrequired => { tools => 'upload_general_files' }, } ); $template->param( - plugin => $plugin, - index => $index, + index => $index, + owner => $loggedinuser, + plugin => $plugin, ); my $upar = $plugin ? { public => 1 } : {}; @@ -54,6 +55,7 @@ if ( $op eq 'new' ) { uploadcategories => Koha::Upload->getCategories, ); output_html_with_http_headers $input, $cookie, $template->output; + } elsif ( $op eq 'search' ) { my $h = $id ? { id => $id } : { term => $term }; my @uploads = Koha::Upload->new($upar)->get($h); @@ -63,8 +65,8 @@ if ( $op eq 'new' ) { uploads => \@uploads, ); output_html_with_http_headers $input, $cookie, $template->output; -} elsif ( $op eq 'delete' ) { +} elsif ( $op eq 'delete' ) { # delete only takes the id parameter my $upl = Koha::Upload->new($upar); my ($fn) = $upl->delete( { id => $id } ); @@ -79,6 +81,7 @@ if ( $op eq 'new' ) { uploadcategories => $upl->getCategories, ); output_html_with_http_headers $input, $cookie, $template->output; + } elsif ( $op eq 'download' ) { my $upl = Koha::Upload->new($upar); my $rec = $upl->get( { id => $id, filehandle => 1 } ); --