Root/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | <?php /* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* # ***** BEGIN LICENSE BLOCK ***** # This file is part of InDefero, an open source project management application. # Copyright (C) 2008 Céondo Ltd and contributors. # # InDefero is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # InDefero is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # ***** END LICENSE BLOCK ***** */ /** * Configuration of the source. */ class IDF_Form_SourceConf extends Pluf_Form { public $conf = null; public function initFields( $extra = array ()) { $this ->conf = $extra [ 'conf' ]; $this ->fields[ 'scm' ] = new Pluf_Form_Field_Varchar( array ( 'required' => true, 'label' => __( 'Repository type' ), 'initial' => $this ->conf->getVal( 'scm' , 'git' ), 'widget_attrs' => array ( 'choices' => array ( __( 'git' ) => 'git' , __( 'Subversion' ) => 'svn' , ) ), 'widget' => 'Pluf_Form_Widget_SelectInput' , )); $this ->fields[ 'svn_remote_url' ] = new Pluf_Form_Field_Varchar( array ( 'required' => false, 'label' => __( 'Remote Subversion repository' ), 'initial' => $this ->conf->getVal( 'svn_remote_url' , '' ), 'widget_attrs' => array ( 'size' => '30' ), )); $this ->fields[ 'svn_username' ] = new Pluf_Form_Field_Varchar( array ( 'required' => false, 'label' => __( 'Repository username' ), 'initial' => $this ->conf->getVal( 'svn_username' , '' ), 'widget_attrs' => array ( 'size' => '15' ), )); $this ->fields[ 'svn_password' ] = new Pluf_Form_Field_Varchar( array ( 'required' => false, 'label' => __( 'Repository password' ), 'initial' => $this ->conf->getVal( 'svn_password' , '' ), 'widget' => 'Pluf_Form_Widget_PasswordInput' , )); } public function clean_svn_remote_url() { $url = trim( $this ->cleaned_data[ 'svn_remote_url' ]); if ( strlen ( $url ) == 0) return $url ; // we accept only starting with http(s):// to avoid people // trying to access the local filesystem. if (!preg_match( '#^(http|https)://#' , $url )) { throw new Pluf_Form_Invalid(__( 'Only a remote repository available throught http or https are allowed. For example "http://somewhere.com/sv/trunk.' )); } return $url ; } public function clean() { if ( $this ->cleaned_data[ 'scm' ] == 'git' ) { foreach ( array ( 'svn_remote_url' , 'svn_username' , 'svn_password' ) as $key ) { $this ->cleaned_data[ $key ] = '' ; } } return $this ->cleaned_data; } } |