mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-03-18 02:00:22 +01:00
improve client side validation for repository names
This commit is contained in:
@@ -55,6 +55,9 @@
|
||||
<link rel="stylesheet" type="text/css" href="resources/extjs/resources/css/xtheme-scmslate.css" />
|
||||
<link rel="stylesheet" type="text/css" href="resources/css/style.css" />
|
||||
|
||||
<!-- core overrides -->
|
||||
<script type="text/javascript" src="resources/js/sonia.core.js"></script>
|
||||
|
||||
<!-- extjs -->
|
||||
<script type="text/javascript" src="resources/extjs/adapter/ext/ext-base.js"></script>
|
||||
<script type="text/javascript" src="resources/extjs/ext-all-debug.js"></script>
|
||||
|
||||
@@ -53,7 +53,11 @@ Ext.apply(Ext.form.VTypes, {
|
||||
|
||||
// repository name validator
|
||||
repositoryName: function(val){
|
||||
return /^[A-z0-9\.\-_\/]+$/.test(val);
|
||||
return /^[A-z0-9][A-z0-9\.\-_\/]*$/.test(val)
|
||||
&& ! val.contains('..')
|
||||
&& ! val.endsWith('/.')
|
||||
&& ! val.endsWith('/')
|
||||
&& ! val.endsWith('.');
|
||||
},
|
||||
|
||||
repositoryNameText: 'The name of the repository is invalid.',
|
||||
|
||||
39
scm-webapp/src/main/webapp/resources/js/sonia.core.js
Normal file
39
scm-webapp/src/main/webapp/resources/js/sonia.core.js
Normal file
@@ -0,0 +1,39 @@
|
||||
/* *
|
||||
* Copyright (c) 2010, Sebastian Sdorra
|
||||
* 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 SCM-Manager; 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 REGENTS 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.
|
||||
*
|
||||
* http://bitbucket.org/sdorra/scm-manager
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
String.prototype.endsWith = function(suffix) {
|
||||
return this.indexOf(suffix, this.length - suffix.length) !== -1;
|
||||
};
|
||||
|
||||
String.prototype.contains = function(val) {
|
||||
return this.indexOf(val) >= 0;
|
||||
};
|
||||
Reference in New Issue
Block a user