From scoop at lithium.sabren.com Tue Oct 3 12:36:32 2006
From: scoop at lithium.sabren.com (scoop@lithium.sabren.com)
Date: Tue Oct 3 13:34:47 2006
Subject: [Scoop-checkins] scoop/lib/Scoop/Admin EditUser.pm
Message-ID: <200610031936.k93JaWxB025618@lithium.sabren.com>
Update of /cvs/scoop/scoop/lib/Scoop/Admin
In directory lithium.sabren.com:/tmp/cvs-serv25566/lib/Scoop/Admin
Modified Files:
EditUser.pm
Log Message:
File delete fix. Stop any user with file upload permission being able to
delete admin files.
Index: EditUser.pm
===================================================================
RCS file: /cvs/scoop/scoop/lib/Scoop/Admin/EditUser.pm,v
retrieving revision 1.137
retrieving revision 1.138
diff -C2 -d -r1.137 -r1.138
*** EditUser.pm 14 Oct 2005 20:07:09 -0000 1.137
--- EditUser.pm 3 Oct 2006 19:36:29 -0000 1.138
***************
*** 37,49 ****
# check for delete activity
if ( $S->{CGI}->param('confirm_delete') && $S->{CGI}->param('delete') && $file_name ) {
- my $path;
- return 'Permission Denied' if ($uid ne $S->{UID}) || !$S->var('upload_delete');
if ( $S->{CGI}->param('list_type') eq 'user' ) {
! $path = $S->var('upload_path_user') . "$uid/";
} else {
! $path = $S->var('upload_path_admin');
};
- unlink "$path$file_name";
$page .= qq{
%%norm_font%%$file_name deleted.%%norm_font_end%% |
};
--- 37,48 ----
# check for delete activity
if ( $S->{CGI}->param('confirm_delete') && $S->{CGI}->param('delete') && $file_name ) {
if ( $S->{CGI}->param('list_type') eq 'user' ) {
! return 'Permission Denied' if ($uid ne $S->{UID}) || !$S->var('upload_delete');
! $S->delete_user_file($file_name);
} else {
! return 'Permission Denied' if !($S->var('upload_admin') && $S->var('upload_delete'));
! $S->delete_admin_file($file_name);
};
$page .= qq{%%norm_font%%$file_name deleted.%%norm_font_end%% |
};
***************
*** 55,62 ****
my $file_name_new = $S->clean_filename($S->{CGI}->param('rename_filename'));
- return 'Permission Denied' if ($uid ne $S->{UID}) || !$S->var('upload_rename');
if ( $S->{CGI}->param('list_type') eq 'user' ) {
$path = $S->var('upload_path_user') . "$uid/";
} else {
$path = $S->var('upload_path_admin');
};
--- 54,62 ----
my $file_name_new = $S->clean_filename($S->{CGI}->param('rename_filename'));
if ( $S->{CGI}->param('list_type') eq 'user' ) {
+ return 'Permission Denied' if ($uid ne $S->{UID}) || !$S->var('upload_rename');
$path = $S->var('upload_path_user') . "$uid/";
} else {
+ return 'Permission Denied' if !($S->var('upload_admin') && $S->var('upload_rename'));
$path = $S->var('upload_path_admin');
};
***************
*** 112,116 ****
my $file_list = qq{
! | %%title_font%%$title%%title_font_end%% |
--- 112,116 ----
my $file_list = qq{
! | %%title_font%%$title%%title_font_end%% |
From scoop at lithium.sabren.com Tue Oct 3 12:36:32 2006
From: scoop at lithium.sabren.com (scoop@lithium.sabren.com)
Date: Tue Oct 3 13:34:48 2006
Subject: [Scoop-checkins] scoop/lib/Scoop Utility.pm
Message-ID: <200610031936.k93JaWxr025617@lithium.sabren.com>
Update of /cvs/scoop/scoop/lib/Scoop
In directory lithium.sabren.com:/tmp/cvs-serv25566/lib/Scoop
Modified Files:
Utility.pm
Log Message:
File delete fix. Stop any user with file upload permission being able to
delete admin files.
Index: Utility.pm
===================================================================
RCS file: /cvs/scoop/scoop/lib/Scoop/Utility.pm,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -d -r1.38 -r1.39
*** Utility.pm 16 Aug 2006 23:44:06 -0000 1.38
--- Utility.pm 3 Oct 2006 19:36:29 -0000 1.39
***************
*** 55,58 ****
--- 55,91 ----
}
+ =item * delete_user_file($file_name, $uid)
+
+ Deletes a specified file from $uid's files.
+
+ =cut
+ sub delete_user_file {
+ my $S = shift;
+ my $file_name = shift;
+ my $uid = shift || $S->{UID};
+
+ $file_name = $S->clean_filename($file_name);
+
+ my $path = $S->var('upload_path_user') . "$uid/";
+
+ unlink "$path$file_name";
+ }
+
+ =item * delete_admin_file($file_name)
+
+ Deletes a specified admin file.
+
+ =cut
+ sub delete_admin_file {
+ my $S = shift;
+ my $file_name = shift;
+
+ $file_name = $S->clean_filename($file_name);
+
+ my $path = $S->var('upload_path_admin');
+
+ unlink "$path$file_name";
+ }
+
=item * display_upload_form()