[# tag: ewok file edit page #] [! use File::Basename; use Ewok::Config qw($EWOK_EDIT_RE $EWOK_TEMPLATE_RE %EWOK_RESTRICTED_OBJECTS); use Ewok::Authz qw(:common); use Ewok::File qw(restrictCheck); use Ewok::Util qw(:dir :error); use Ewok::Locker; !] [- Execute({ inputfile => 'util.epl', import => 1 }); $req = shift; @errors = (); $web_file = $fdat{p}; ($web_dir, $fs_dir, $wd, $filename) = webfsdir($req, $web_file, { errors => \@errors }); $fs_file = "$fs_dir$filename"; $authz = authzGetUserHash($req, $fs_file); $meta = 0; if ($filename !~ m/$Ewok::Config::EWOK_NONMETA_RE/i) { $meta = 1; $meta = $fdat{meta} if exists $fdat{meta}; } $javascript = ! exists $req->{pref} || $req->{pref}->{javascript}; $rows = $req->{pref}->{edit_window_rows} || 25; $cols = $req->{pref}->{edit_window_columns} || 80; -] [$ if ($javascript) $] [$ endif $] ewok: edit [+ $web_file +] [- if (! @errors) { if (! restrictCheck($req, 'edit', $fs_dir, [ $filename ], { errors => \@errors, web_dir => $web_dir, })) { # Errors in @errors } elsif ($filename !~ m/$EWOK_EDIT_RE/ && $filename !~ m/$EWOK_TEMPLATE_RE/ && ! $EWOK_RESTRICTED_OBJECTS{$filename}) { info("Error: cannot edit '$filename'.", \@errors);; } elsif (($filename =~ m/$EWOK_EDIT_RE/ && ! $authz->{$EDIT_PRIV}) || ($filename =~ m/$EWOK_TEMPLATE_RE/ && ! $authz->{$TMPL_PRIV})) { info("Error: insufficient privileges to edit '$filename'.", \@errors); } elsif (! -r $fs_file) { info("Error: cannot read '$filename'.", \@errors); } elsif (-l $fs_file) { info("Error: cannot edit '$filename' - it's a link (try editing the target).", \@errors); } else { my $l = Ewok::Locker->new(); $l->lock($fs_file, $req->{user}, { errors => \@errors, altfile => $web_file, op => 'edit' }); } } errors(\@errors) if @errors; -] [$ if (! @errors) $]

Editing [+ $web_file +], status LOCKED.

Note: do NOT use your browser 'Back' key here or the lock on this file will not be removed properly. [#

#] [$ if ($meta) $] Use the 'Next', 'Save', or 'Cancel' buttons below.

[$ else $] Use the 'Save' or 'Cancel' buttons below.

[$ endif $] [- open TEXT,"<$fs_file"; { local $/ = undef; $text = ; } -][# " #]
[# #] [$ if ($meta) $] [$ else $] [$ endif $] [$ endif $]