1

new forms for meta + limit + split createform

This commit is contained in:
Christoph
2020-04-12 14:00:40 +02:00
parent 40470cc3a6
commit 80bc59dba7
6 changed files with 53 additions and 33 deletions

View File

@ -10,6 +10,8 @@ import mops.gruppen2.domain.service.IdService;
import mops.gruppen2.domain.service.ProjectionService;
import mops.gruppen2.domain.service.ValidationService;
import mops.gruppen2.web.form.CreateForm;
import mops.gruppen2.web.form.MetaForm;
import mops.gruppen2.web.form.UserLimitForm;
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Controller;
@ -49,22 +51,24 @@ public class GroupCreationController {
@PostMapping("/create")
@CacheEvict(value = "groups", allEntries = true)
public String postCreateOrga(KeycloakAuthenticationToken token,
@Valid CreateForm form) {
@Valid CreateForm create,
@Valid MetaForm meta,
@Valid UserLimitForm limit) {
// Zusätzlicher check: studentin kann keine lecture erstellen
ValidationService.validateCreateForm(token, form);
ValidationService.validateCreateForm(token, create);
User user = new User(token);
Group group = groupService.createGroup(user,
form.getTitle(),
form.getDescription(),
form.getType(),
form.getUserlimit(),
form.getParent());
meta.getTitle(),
meta.getDescription(),
create.getType(),
limit.getUserlimit(),
create.getParent());
// ROLE_studentin kann kein CSV importieren
if (token.getAccount().getRoles().contains("orga")) {
groupService.addUsersToGroup(CsvService.readCsvFile(form.getFile()), group, user);
groupService.addUsersToGroup(CsvService.readCsvFile(create.getFile()), group, user);
}
return "redirect:/gruppen2/details/" + IdService.uuidToString(group.getId());

View File

@ -10,6 +10,8 @@ import mops.gruppen2.domain.service.IdService;
import mops.gruppen2.domain.service.InviteService;
import mops.gruppen2.domain.service.ProjectionService;
import mops.gruppen2.domain.service.ValidationService;
import mops.gruppen2.web.form.MetaForm;
import mops.gruppen2.web.form.UserLimitForm;
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Controller;
@ -23,9 +25,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.security.RolesAllowed;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.Valid;
import java.util.UUID;
@SuppressWarnings("SameReturnValue")
@ -126,14 +126,13 @@ public class GroupDetailsController {
@CacheEvict(value = "groups", allEntries = true)
public String postDetailsMetaUpdate(KeycloakAuthenticationToken token,
@PathVariable("id") String groupId,
@NotBlank @RequestParam("title") String title,
@NotBlank @RequestParam("description") String description) {
@Valid MetaForm form) {
User user = new User(token);
Group group = projectionService.projectSingleGroup(UUID.fromString(groupId));
groupService.updateTitle(user, group, title);
groupService.updateDescription(user, group, description);
groupService.updateTitle(user, group, form.getTitle());
groupService.updateDescription(user, group, form.getDescription());
return "redirect:/gruppen2/details/" + groupId + "/edit";
}
@ -143,12 +142,11 @@ public class GroupDetailsController {
@CacheEvict(value = "groups", allEntries = true)
public String postDetailsMembersUpdateUserLimit(KeycloakAuthenticationToken token,
@PathVariable("id") String groupId,
@Min(1) @Max(999_999) @RequestParam("userlimit") long userLimit) {
@Valid UserLimitForm form) {
User user = new User(token);
Group group = projectionService.projectSingleGroup(UUID.fromString(groupId));
groupService.updateUserLimit(user, group, userLimit);
groupService.updateUserLimit(user, group, form.getUserlimit());
return "redirect:/gruppen2/details/" + groupId + "/edit";
}

View File

@ -5,33 +5,18 @@ import mops.gruppen2.domain.GroupType;
import mops.gruppen2.domain.service.IdService;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.UUID;
@Data
public class CreateForm {
@NotBlank
@Size(min = 3, max = 128)
String title;
@NotBlank
@Size(min = 3, max = 512)
String description;
@NotBlank
String type;
@NotBlank
String parent;
@Min(1)
@Max(999_999)
long userlimit;
MultipartFile file;
public GroupType getType() {

View File

@ -0,0 +1,18 @@
package mops.gruppen2.web.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
@Data
public class MetaForm {
@NotBlank
@Size(min = 4, max = 128)
String title;
@NotBlank
@Size(min = 4, max = 512)
String description;
}

View File

@ -0,0 +1,14 @@
package mops.gruppen2.web.form;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
@Data
public class UserLimitForm {
@Min(1)
@Max(999_999)
long userlimit;
}

View File

@ -15,6 +15,7 @@
/*Badges*/
.badge-pill {
align-self: start;
margin-right: 10px;
}
.members .badge {