mirror of
				https://github.com/gitbucket/gitbucket.git
				synced 2025-10-31 10:36:05 +01:00 
			
		
		
		
	Implementing add collaborator stuff.
This commit is contained in:
		| @@ -1,12 +1,19 @@ | ||||
| package app | ||||
|  | ||||
| import service._ | ||||
| import jp.sf.amateras.scalatra.forms._ | ||||
|  | ||||
| class SettingsController extends SettingsControllerBase with RepositoryService with AccountService | ||||
|  | ||||
|  | ||||
| trait SettingsControllerBase extends ControllerBase { self: RepositoryService => | ||||
|    | ||||
| trait SettingsControllerBase extends ControllerBase { self: RepositoryService with AccountService => | ||||
|  | ||||
|   case class CollaboratorForm(userName: String) | ||||
|  | ||||
|   val form = mapping( | ||||
|     "userName" -> trim(label("Username", text(required, existUser))) | ||||
|   )(CollaboratorForm.apply) | ||||
|  | ||||
|   get("/:owner/:repository/settings") { | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
| @@ -24,7 +31,24 @@ trait SettingsControllerBase extends ControllerBase { self: RepositoryService => | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|      | ||||
|     settings.html.collaborators(getRepository(owner, repository, servletContext).get) | ||||
|     settings.html.collaborators(getCollaborators(owner, repository), getRepository(owner, repository, servletContext).get) | ||||
|   } | ||||
|  | ||||
|   post("/:owner/:repository/settings/collaborators/_add", form) { form => | ||||
|     val owner      = params("owner") | ||||
|     val repository = params("repository") | ||||
|     addCollaborator(owner, repository, form.userName) | ||||
|     redirect("/%s/%s/settings/collaborators".format(owner, repository)) | ||||
|   } | ||||
|  | ||||
|   def existUser: Constraint = new Constraint(){ | ||||
|     def validate(name: String, value: String): Option[String] = { | ||||
|       getAccountByUserName(value) match { | ||||
|         case None => Some("User does not exist.") | ||||
|         case Some(x) if(x.userName == context.loginAccount.get.userName) => Some("User can access this repository already.") | ||||
|         case Some(x) => None | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user