@@ -, +, @@
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 +++
.../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 } );
--