[vhffs-dev] [1038] All web preferences are now handled by prefs.pl

[ Thread Index | Date Index | More vhffs.org/vhffs-dev Archives ]


Revision: 1038
Author:   beuss
Date:     2007-10-27 08:34:03 +0000 (Sat, 27 Oct 2007)

Log Message:
-----------
All web preferences are now handled by prefs.pl

Modified Paths:
--------------
    trunk/vhffs-panel/Makefile.am
    trunk/vhffs-panel/templates/web/prefs.tmpl
    trunk/vhffs-panel/web/prefs.pl

Removed Paths:
-------------
    trunk/vhffs-panel/web/prefs_save.pl


Modified: trunk/vhffs-panel/Makefile.am
===================================================================
--- trunk/vhffs-panel/Makefile.am	2007-10-26 22:16:27 UTC (rev 1037)
+++ trunk/vhffs-panel/Makefile.am	2007-10-27 08:34:03 UTC (rev 1038)
@@ -121,7 +121,6 @@
 	web/create.pl \
 	web/delete.pl \
 	web/index.pl \
-	web/prefs_save.pl \
 	web/prefs.pl
 
 panelthemesdir = @PANELDIR@

Modified: trunk/vhffs-panel/templates/web/prefs.tmpl
===================================================================
--- trunk/vhffs-panel/templates/web/prefs.tmpl	2007-10-26 22:16:27 UTC (rev 1037)
+++ trunk/vhffs-panel/templates/web/prefs.tmpl	2007-10-27 08:34:03 UTC (rev 1038)
@@ -1,6 +1,6 @@
 <h1><tmpl_var name="TEXT_TITLE"></h1>
 	
-<form method="post" action="/web/prefs_save.pl" accept-charset="utf-8">
+<form method="post" action="/web/prefs.pl" accept-charset="utf-8">
 	<p>
 		<label>
 			<tmpl_var name="TEXT_SERVERNAME"> :
@@ -13,11 +13,12 @@
 	<label>
 		<tmpl_var name="TEXT_DESCRIPTION"> :
 	</label>
-	 <textarea name="DESCRIPTION" id="DESCRIPTION" cols="45" rows="7"><tmpl_var name="VALUE_DESCRIPTION"></textarea>
+	 <textarea name="description" id="description" cols="45" rows="7"><tmpl_var name="VALUE_DESCRIPTION"></textarea>
 	</p>
 
-	<p class="button" id="buttonModify">
-		<input value="<tmpl_var name="TEXT_SEND">" type="submit" />
+	<p class="button">
+		<input value="<tmpl_var name="TEXT_SEND">" type="submit"
+        name="save_prefs_submit"/>
 	</p>
 
 </form>

Modified: trunk/vhffs-panel/web/prefs.pl
===================================================================
--- trunk/vhffs-panel/web/prefs.pl	2007-10-26 22:16:27 UTC (rev 1037)
+++ trunk/vhffs-panel/web/prefs.pl	2007-10-27 08:34:03 UTC (rev 1038)
@@ -46,6 +46,7 @@
 use Vhffs::Panel::Main;
 use Vhffs::Panel::Menu;
 use Vhffs::Panel::Object;
+use Vhffs::Panel::Template;
 use Vhffs::Services::Web;
 use Vhffs::Acl;
 use Vhffs::Constants;
@@ -67,31 +68,28 @@
 
 my $web = Vhffs::Services::Web::get_by_servername( $vhffs , $servername );
 
-if( ! defined($web) )
-{
+if( ! defined($web) ) {
 
 	$template = new HTML::Template( filename => $templatedir."/panel/misc/simplemsg.tmpl" );
 	my $message = gettext( "Cannot get informations on this object");
 	$template->param( MESSAGE => $message );
 
-}
-elsif( $web->get_status != Vhffs::Constants::ACTIVATED )
-{
+} elsif( $web->get_status != Vhffs::Constants::ACTIVATED ) {
 	
 	$template = new HTML::Template( filename => $templatedir."/panel/misc/simplemsg.tmpl" );
 	my $message = gettext( "This object is not functionnal yet. Please wait creation or moderation.");
 	$template->param( MESSAGE => $message );
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $web , $vhffs ) < Vhffs::Constants::ACL_VIEW ) && ( $user->is_admin != 1 ) )
-{
+} elsif( !$user->can_view($web) ) {
 	$template = new HTML::Template( filename => $templatedir."/panel/misc/simplemsg.tmpl" );
 	my $message = gettext("You're not allowed to do this (ACL rights)");
 	$template->param( MESSAGE => $message );
-}
-else
-{
-	$template = new HTML::Template( filename => $templatedir."/panel/web/prefs.tmpl" );
+} else {
 
+    if(defined($cgi->param('save_prefs_submit'))) {
+        save_prefs();
+    }
+	$template = new Vhffs::Panel::Template( filename => $templatedir."/panel/web/prefs.tmpl" );
+
 	$template->param( TEXT_TITLE => gettext("Web Area Administration") );
 
 	$template->param( TEXT_SERVERNAME => gettext("Address (Servername)") );
@@ -120,3 +118,29 @@
 
 $panel->build( $template );
 $panel->display;
+
+sub save_prefs {
+    my $description = $cgi->param('description');
+    if(!$user->can_modify($web)) {
+        $panel->add_error( gettext('You are not allowed to modify this web area') );
+        return;
+    }
+
+    if(!defined $description) {
+        $panel->add_error( gettext('CGI error') );
+        return;
+    }
+
+    if($description =~ /^\s*$/) {
+        $panel->add_error( gettext('You have to enter a description') );
+        return;
+    }
+
+    $web->set_description($description);
+    if($web->commit < 0) {
+        $panel->add_error( gettext('Unable to apply modifications') );
+    } else {
+        $panel->add_info( gettext('Web area successfuly modified') );
+    }
+}
+

Deleted: trunk/vhffs-panel/web/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/web/prefs_save.pl	2007-10-26 22:16:27 UTC (rev 1037)
+++ trunk/vhffs-panel/web/prefs_save.pl	2007-10-27 08:34:03 UTC (rev 1038)
@@ -1,101 +0,0 @@
-#!%PERL% -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without 
-# modification, are permitted provided that the following conditions 
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright 
-#   notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in 
-#   the documentation and/or other materials provided with the 
-#   distribution.
-#3. Neither the name of vhffs nor the names of its contributors 
-#   may be used to endorse or promote products derived from this 
-#   software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
-# POSSIBILITY OF SUCH DAMAGE.
-
-use strict;
-use utf8;
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use Encode;
-
-use lib '%VHFFS_LIB_DIR%';
-use Vhffs::User;
-use Vhffs::Main;
-use Vhffs::Group;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-use Vhffs::Panel::Group;
-use Vhffs::Services::Web;
-use Vhffs::Acl;
-
-my $panel = new Vhffs::Panel::Main();
-exit 0 unless $panel;
-my $session = $panel->get_session;
-exit 0 unless $session;
-
-my $vhffs = $panel->{'vhffs'};
-my $maintemplate = $panel->{'template'};
-my $user = $panel->{'user'};
-my $group = $panel->{'group'};
-my $cgi = $panel->{'cgi'};
-my $message;
-my $owner = $cgi->param("PROJECT_OWNER");
-my $template;
-my $description;
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $servername = $cgi->param("name");
-
-
-
-my $web = Vhffs::Services::Web::get_by_servername( $vhffs , $servername );
-
-if( ! defined( $web ) )
-{
-    $message = gettext("This web area doesn't exist in VHFFS database");
-}
-elsif( $web->get_status != Vhffs::Constants::ACTIVATED )
-{
-	$message = gettext( "This object is not functionnal yet. Please wait creation or moderation.");
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $web , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
-	$message = gettext( "You're not allowed to do this (ACL rights)" );
-}
-else
-{
-	$description = Encode::decode_utf8( $cgi->param("DESCRIPTION") );
-	$web->set_description( $description );
-	$web->commit;
-	$message = gettext( "Modifications applied to your webarea" );
-}
-
-
-$template = new HTML::Template( filename => $templatedir."/panel/misc/simplemsg.tmpl" );
-$template->param( MESSAGE => $message );
-
-$panel->set_refresh_url( "/web/prefs.pl?name=$servername" );
-$panel->build( $template );
-$panel->display;


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/