new forms for meta + limit + split createform
This commit is contained in:
@ -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());
|
||||
|
@ -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";
|
||||
}
|
||||
|
@ -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() {
|
||||
|
18
src/main/java/mops/gruppen2/web/form/MetaForm.java
Normal file
18
src/main/java/mops/gruppen2/web/form/MetaForm.java
Normal 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;
|
||||
}
|
14
src/main/java/mops/gruppen2/web/form/UserLimitForm.java
Normal file
14
src/main/java/mops/gruppen2/web/form/UserLimitForm.java
Normal 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;
|
||||
}
|
@ -15,6 +15,7 @@
|
||||
/*Badges*/
|
||||
.badge-pill {
|
||||
align-self: start;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.members .badge {
|
||||
|
Reference in New Issue
Block a user