mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 13:35:50 +01:00
Upgrade scalatra-forms.
This commit is contained in:
BIN
lib/scalatra-forms_2.10-0.0.2.jar
Normal file
BIN
lib/scalatra-forms_2.10-0.0.2.jar
Normal file
Binary file not shown.
@@ -32,7 +32,7 @@ object MyBuild extends Build {
|
|||||||
"org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test",
|
"org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test",
|
||||||
"org.scalatra" %% "scalatra-json" % ScalatraVersion,
|
"org.scalatra" %% "scalatra-json" % ScalatraVersion,
|
||||||
"org.json4s" %% "json4s-jackson" % "3.2.4",
|
"org.json4s" %% "json4s-jackson" % "3.2.4",
|
||||||
"jp.sf.amateras" %% "scalatra-forms" % "0.0.1",
|
// "jp.sf.amateras" %% "scalatra-forms" % "0.0.1",
|
||||||
"commons-io" % "commons-io" % "2.4",
|
"commons-io" % "commons-io" % "2.4",
|
||||||
"org.pegdown" % "pegdown" % "1.3.0",
|
"org.pegdown" % "pegdown" % "1.3.0",
|
||||||
"org.apache.commons" % "commons-compress" % "1.5",
|
"org.apache.commons" % "commons-compress" % "1.5",
|
||||||
|
|||||||
@@ -167,12 +167,12 @@ trait AccountManagementControllerBase extends ControllerBase with FileUploadCont
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected def uniqueUserName: Constraint = new Constraint(){
|
protected def uniqueUserName: Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] =
|
override def validate(name: String, value: String): Option[String] =
|
||||||
getAccountByUserName(value).map { _ => "User already exists." }
|
getAccountByUserName(value).map { _ => "User already exists." }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected def uniqueMailAddress(paramName: String = ""): Constraint = new Constraint(){
|
protected def uniqueMailAddress(paramName: String = ""): Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] =
|
override def validate(name: String, value: String, params: Map[String, String]): Option[String] =
|
||||||
getAccountByMailAddress(value)
|
getAccountByMailAddress(value)
|
||||||
.filter { x => if(paramName.isEmpty) true else Some(x.userName) != params.get(paramName) }
|
.filter { x => if(paramName.isEmpty) true else Some(x.userName) != params.get(paramName) }
|
||||||
.map { _ => "Mail address is already registered." }
|
.map { _ => "Mail address is already registered." }
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ trait CreateRepositoryControllerBase extends ControllerBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private def existsAccount: Constraint = new Constraint(){
|
private def existsAccount: Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] =
|
override def validate(name: String, value: String): Option[String] =
|
||||||
if(getAccountByUserName(value).isEmpty) Some("User or group does not exist.") else None
|
if(getAccountByUserName(value).isEmpty) Some("User or group does not exist.") else None
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,7 +188,7 @@ trait CreateRepositoryControllerBase extends ControllerBase {
|
|||||||
* Duplicate check for the repository name.
|
* Duplicate check for the repository name.
|
||||||
*/
|
*/
|
||||||
private def unique: Constraint = new Constraint(){
|
private def unique: Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] =
|
override def validate(name: String, value: String, params: Map[String, String]): Option[String] =
|
||||||
params.get("owner").flatMap { userName =>
|
params.get("owner").flatMap { userName =>
|
||||||
getRepositoryNamesOfUser(userName).find(_ == value).map(_ => "Repository already exists.")
|
getRepositoryNamesOfUser(userName).find(_ == value).map(_ => "Repository already exists.")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ trait LabelsControllerBase extends ControllerBase {
|
|||||||
* Constraint for the identifier such as user name, repository name or page name.
|
* Constraint for the identifier such as user name, repository name or page name.
|
||||||
*/
|
*/
|
||||||
private def labelName: Constraint = new Constraint(){
|
private def labelName: Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] =
|
override def validate(name: String, value: String): Option[String] =
|
||||||
if(!value.matches("^[^,]+$")){
|
if(!value.matches("^[^,]+$")){
|
||||||
Some(s"${name} contains invalid character.")
|
Some(s"${name} contains invalid character.")
|
||||||
} else if(value.startsWith("_") || value.startsWith("-")){
|
} else if(value.startsWith("_") || value.startsWith("-")){
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ trait RepositorySettingsControllerBase extends ControllerBase with FlashMapSuppo
|
|||||||
* Provides Constraint to validate the collaborator name.
|
* Provides Constraint to validate the collaborator name.
|
||||||
*/
|
*/
|
||||||
private def collaborator: Constraint = new Constraint(){
|
private def collaborator: Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] = {
|
override def validate(name: String, value: String): Option[String] = {
|
||||||
val paths = request.getRequestURI.split("/")
|
val paths = request.getRequestURI.split("/")
|
||||||
getAccountByUserName(value) match {
|
getAccountByUserName(value) match {
|
||||||
case None => Some("User does not exist.")
|
case None => Some("User does not exist.")
|
||||||
|
|||||||
@@ -16,16 +16,13 @@ trait SystemSettingsControllerBase extends ControllerBase with FlashMapSupport {
|
|||||||
"allowAccountRegistration" -> trim(label("Account registration", boolean())),
|
"allowAccountRegistration" -> trim(label("Account registration", boolean())),
|
||||||
"gravatar" -> trim(label("Gravatar", boolean())),
|
"gravatar" -> trim(label("Gravatar", boolean())),
|
||||||
"notification" -> trim(label("Notification", boolean())),
|
"notification" -> trim(label("Notification", boolean())),
|
||||||
"smtp" -> mapping(
|
"smtp" -> optionalIfNotChecked("notification", mapping(
|
||||||
"host" -> trim(label("SMTP Host", text(new Constraint(){
|
"host" -> trim(label("SMTP Host", text(required))),
|
||||||
def validate(name: String, value: String): Option[String] =
|
|
||||||
if(params.get("notification").exists(_ == "on")) required.validate(name, value) else None
|
|
||||||
}))),
|
|
||||||
"port" -> trim(label("SMTP Port", optional(number()))),
|
"port" -> trim(label("SMTP Port", optional(number()))),
|
||||||
"user" -> trim(label("SMTP User", optional(text()))),
|
"user" -> trim(label("SMTP User", optional(text()))),
|
||||||
"password" -> trim(label("SMTP Password", optional(text()))),
|
"password" -> trim(label("SMTP Password", optional(text()))),
|
||||||
"ssl" -> trim(label("Enable SSL", optional(boolean())))
|
"ssl" -> trim(label("Enable SSL", optional(boolean())))
|
||||||
)(Smtp.apply)
|
)(Smtp.apply))
|
||||||
)(SystemSettings.apply)
|
)(SystemSettings.apply)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -136,12 +136,12 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
})
|
})
|
||||||
|
|
||||||
private def unique: Constraint = new Constraint(){
|
private def unique: Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] =
|
override def validate(name: String, value: String, params: Map[String, String]): Option[String] =
|
||||||
getWikiPageList(params("owner"), params("repository")).find(_ == value).map(_ => "Page already exists.")
|
getWikiPageList(params("owner"), params("repository")).find(_ == value).map(_ => "Page already exists.")
|
||||||
}
|
}
|
||||||
|
|
||||||
private def pagename: Constraint = new Constraint(){
|
private def pagename: Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] =
|
override def validate(name: String, value: String): Option[String] =
|
||||||
if(value.exists("\\/:*?\"<>|".contains(_))){
|
if(value.exists("\\/:*?\"<>|".contains(_))){
|
||||||
Some(s"${name} contains invalid character.")
|
Some(s"${name} contains invalid character.")
|
||||||
} else if(value.startsWith("_") || value.startsWith("-")){
|
} else if(value.startsWith("_") || value.startsWith("-")){
|
||||||
|
|||||||
@@ -11,11 +11,13 @@ trait SystemSettingsService {
|
|||||||
props.setProperty(Gravatar, settings.gravatar.toString)
|
props.setProperty(Gravatar, settings.gravatar.toString)
|
||||||
props.setProperty(Notification, settings.notification.toString)
|
props.setProperty(Notification, settings.notification.toString)
|
||||||
if(settings.notification) {
|
if(settings.notification) {
|
||||||
props.setProperty(SmtpHost, settings.smtp.host)
|
settings.smtp.foreach { smtp =>
|
||||||
settings.smtp.port.foreach(x => props.setProperty(SmtpPort, x.toString))
|
props.setProperty(SmtpHost, smtp.host)
|
||||||
settings.smtp.user.foreach(props.setProperty(SmtpUser, _))
|
smtp.port.foreach(x => props.setProperty(SmtpPort, x.toString))
|
||||||
settings.smtp.password.foreach(props.setProperty(SmtpPassword, _))
|
smtp.user.foreach(props.setProperty(SmtpUser, _))
|
||||||
settings.smtp.ssl.foreach(x => props.setProperty(SmtpSsl, x.toString))
|
smtp.password.foreach(props.setProperty(SmtpPassword, _))
|
||||||
|
smtp.ssl.foreach(x => props.setProperty(SmtpSsl, x.toString))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
props.store(new java.io.FileOutputStream(GitBucketConf), null)
|
props.store(new java.io.FileOutputStream(GitBucketConf), null)
|
||||||
}
|
}
|
||||||
@@ -30,13 +32,17 @@ trait SystemSettingsService {
|
|||||||
getValue(props, AllowAccountRegistration, false),
|
getValue(props, AllowAccountRegistration, false),
|
||||||
getValue(props, Gravatar, true),
|
getValue(props, Gravatar, true),
|
||||||
getValue(props, Notification, false),
|
getValue(props, Notification, false),
|
||||||
Smtp(
|
if(getValue(props, Notification, false)){
|
||||||
|
Some(Smtp(
|
||||||
getValue(props, SmtpHost, ""),
|
getValue(props, SmtpHost, ""),
|
||||||
getOptionValue(props, SmtpPort, Some(25)),
|
getOptionValue(props, SmtpPort, Some(25)),
|
||||||
getOptionValue(props, SmtpUser, None),
|
getOptionValue(props, SmtpUser, None),
|
||||||
getOptionValue(props, SmtpPassword, None),
|
getOptionValue(props, SmtpPassword, None),
|
||||||
getOptionValue[Boolean](props, SmtpSsl, None)
|
getOptionValue[Boolean](props, SmtpSsl, None)))
|
||||||
))
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -48,7 +54,7 @@ object SystemSettingsService {
|
|||||||
allowAccountRegistration: Boolean,
|
allowAccountRegistration: Boolean,
|
||||||
gravatar: Boolean,
|
gravatar: Boolean,
|
||||||
notification: Boolean,
|
notification: Boolean,
|
||||||
smtp: Smtp
|
smtp: Option[Smtp]
|
||||||
)
|
)
|
||||||
case class Smtp(
|
case class Smtp(
|
||||||
host: String,
|
host: String,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ trait Validations {
|
|||||||
* Constraint for the identifier such as user name, repository name or page name.
|
* Constraint for the identifier such as user name, repository name or page name.
|
||||||
*/
|
*/
|
||||||
def identifier: Constraint = new Constraint(){
|
def identifier: Constraint = new Constraint(){
|
||||||
def validate(name: String, value: String): Option[String] =
|
override def validate(name: String, value: String): Option[String] =
|
||||||
if(!value.matches("^[a-zA-Z0-9\\-_]+$")){
|
if(!value.matches("^[a-zA-Z0-9\\-_]+$")){
|
||||||
Some(s"${name} contains invalid character.")
|
Some(s"${name} contains invalid character.")
|
||||||
} else if(value.startsWith("_") || value.startsWith("-")){
|
} else if(value.startsWith("_") || value.startsWith("-")){
|
||||||
|
|||||||
@@ -39,33 +39,33 @@
|
|||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="smtpHost">SMTP Host</label>
|
<label class="control-label" for="smtpHost">SMTP Host</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="smtpHost" name="host" value="@settings.smtp.host"/>
|
<input type="text" id="smtpHost" name="smtp.host" value="@settings.smtp.map(_.host)"/>
|
||||||
<span id="error-host" class="error"></span>
|
<span id="error-smtp_host" class="error"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="smtpPort">SMTP Port</label>
|
<label class="control-label" for="smtpPort">SMTP Port</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="smtpPort" name="port" class="input-mini" value="@settings.smtp.port"/>
|
<input type="text" id="smtpPort" name="smtp.port" class="input-mini" value="@settings.smtp.map(_.port)"/>
|
||||||
<span id="error-port" class="error"></span>
|
<span id="error-smtp_port" class="error"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="smtpUser">SMTP User</label>
|
<label class="control-label" for="smtpUser">SMTP User</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="smtpUser" name="user" value="@settings.smtp.user"/>
|
<input type="text" id="smtpUser" name="smtp.user" value="@settings.smtp.map(_.user)"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="smtpPassword">SMTP Password</label>
|
<label class="control-label" for="smtpPassword">SMTP Password</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="password" id="smtpPassword" name="password" value="@settings.smtp.password"/>
|
<input type="password" id="smtpPassword" name="smtp.password" value="@settings.smtp.map(_.password)"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<label class="checkbox">
|
<label class="checkbox">
|
||||||
<input type="checkbox" name="ssl"@if(settings.smtp.ssl == Some(true)){ checked}/> Enable SSL
|
<input type="checkbox" name="smtp.ssl"@if(settings.smtp.flatMap(_.ssl).getOrElse(false)){ checked}/> Enable SSL
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -34,6 +34,6 @@ function validate(e){
|
|||||||
|
|
||||||
function displayErrors(data){
|
function displayErrors(data){
|
||||||
$.each(data, function(key, value){
|
$.each(data, function(key, value){
|
||||||
$('#error-' + key).text(value);
|
$('#error-' + key.split('.').join('_')).text(value);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user