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.ProjectionService;
|
||||||
import mops.gruppen2.domain.service.ValidationService;
|
import mops.gruppen2.domain.service.ValidationService;
|
||||||
import mops.gruppen2.web.form.CreateForm;
|
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.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
@ -49,22 +51,24 @@ public class GroupCreationController {
|
|||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@CacheEvict(value = "groups", allEntries = true)
|
@CacheEvict(value = "groups", allEntries = true)
|
||||||
public String postCreateOrga(KeycloakAuthenticationToken token,
|
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
|
// Zusätzlicher check: studentin kann keine lecture erstellen
|
||||||
ValidationService.validateCreateForm(token, form);
|
ValidationService.validateCreateForm(token, create);
|
||||||
|
|
||||||
User user = new User(token);
|
User user = new User(token);
|
||||||
Group group = groupService.createGroup(user,
|
Group group = groupService.createGroup(user,
|
||||||
form.getTitle(),
|
meta.getTitle(),
|
||||||
form.getDescription(),
|
meta.getDescription(),
|
||||||
form.getType(),
|
create.getType(),
|
||||||
form.getUserlimit(),
|
limit.getUserlimit(),
|
||||||
form.getParent());
|
create.getParent());
|
||||||
|
|
||||||
// ROLE_studentin kann kein CSV importieren
|
// ROLE_studentin kann kein CSV importieren
|
||||||
if (token.getAccount().getRoles().contains("orga")) {
|
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());
|
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.InviteService;
|
||||||
import mops.gruppen2.domain.service.ProjectionService;
|
import mops.gruppen2.domain.service.ProjectionService;
|
||||||
import mops.gruppen2.domain.service.ValidationService;
|
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.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
@ -23,9 +25,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
|
|
||||||
import javax.annotation.security.RolesAllowed;
|
import javax.annotation.security.RolesAllowed;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.validation.constraints.Max;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.Min;
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@SuppressWarnings("SameReturnValue")
|
@SuppressWarnings("SameReturnValue")
|
||||||
@ -126,14 +126,13 @@ public class GroupDetailsController {
|
|||||||
@CacheEvict(value = "groups", allEntries = true)
|
@CacheEvict(value = "groups", allEntries = true)
|
||||||
public String postDetailsMetaUpdate(KeycloakAuthenticationToken token,
|
public String postDetailsMetaUpdate(KeycloakAuthenticationToken token,
|
||||||
@PathVariable("id") String groupId,
|
@PathVariable("id") String groupId,
|
||||||
@NotBlank @RequestParam("title") String title,
|
@Valid MetaForm form) {
|
||||||
@NotBlank @RequestParam("description") String description) {
|
|
||||||
|
|
||||||
User user = new User(token);
|
User user = new User(token);
|
||||||
Group group = projectionService.projectSingleGroup(UUID.fromString(groupId));
|
Group group = projectionService.projectSingleGroup(UUID.fromString(groupId));
|
||||||
|
|
||||||
groupService.updateTitle(user, group, title);
|
groupService.updateTitle(user, group, form.getTitle());
|
||||||
groupService.updateDescription(user, group, description);
|
groupService.updateDescription(user, group, form.getDescription());
|
||||||
|
|
||||||
return "redirect:/gruppen2/details/" + groupId + "/edit";
|
return "redirect:/gruppen2/details/" + groupId + "/edit";
|
||||||
}
|
}
|
||||||
@ -143,12 +142,11 @@ public class GroupDetailsController {
|
|||||||
@CacheEvict(value = "groups", allEntries = true)
|
@CacheEvict(value = "groups", allEntries = true)
|
||||||
public String postDetailsMembersUpdateUserLimit(KeycloakAuthenticationToken token,
|
public String postDetailsMembersUpdateUserLimit(KeycloakAuthenticationToken token,
|
||||||
@PathVariable("id") String groupId,
|
@PathVariable("id") String groupId,
|
||||||
@Min(1) @Max(999_999) @RequestParam("userlimit") long userLimit) {
|
@Valid UserLimitForm form) {
|
||||||
|
|
||||||
User user = new User(token);
|
User user = new User(token);
|
||||||
Group group = projectionService.projectSingleGroup(UUID.fromString(groupId));
|
Group group = projectionService.projectSingleGroup(UUID.fromString(groupId));
|
||||||
|
|
||||||
groupService.updateUserLimit(user, group, userLimit);
|
groupService.updateUserLimit(user, group, form.getUserlimit());
|
||||||
|
|
||||||
return "redirect:/gruppen2/details/" + groupId + "/edit";
|
return "redirect:/gruppen2/details/" + groupId + "/edit";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,33 +5,18 @@ import mops.gruppen2.domain.GroupType;
|
|||||||
import mops.gruppen2.domain.service.IdService;
|
import mops.gruppen2.domain.service.IdService;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
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.NotBlank;
|
||||||
import javax.validation.constraints.Size;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class CreateForm {
|
public class CreateForm {
|
||||||
|
|
||||||
@NotBlank
|
|
||||||
@Size(min = 3, max = 128)
|
|
||||||
String title;
|
|
||||||
|
|
||||||
@NotBlank
|
|
||||||
@Size(min = 3, max = 512)
|
|
||||||
String description;
|
|
||||||
|
|
||||||
@NotBlank
|
@NotBlank
|
||||||
String type;
|
String type;
|
||||||
|
|
||||||
@NotBlank
|
@NotBlank
|
||||||
String parent;
|
String parent;
|
||||||
|
|
||||||
@Min(1)
|
|
||||||
@Max(999_999)
|
|
||||||
long userlimit;
|
|
||||||
|
|
||||||
MultipartFile file;
|
MultipartFile file;
|
||||||
|
|
||||||
public GroupType getType() {
|
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*/
|
/*Badges*/
|
||||||
.badge-pill {
|
.badge-pill {
|
||||||
align-self: start;
|
align-self: start;
|
||||||
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.members .badge {
|
.members .badge {
|
||||||
|
|||||||
Reference in New Issue
Block a user