1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.mycore.restapi.v2.access;
20
21 import java.util.Arrays;
22
23 import jakarta.ws.rs.HttpMethod;
24
25 import org.mycore.access.MCRAccessManager;
26
27
28
29
30 public enum MCRRestAPIACLPermission {
31 READ(MCRAccessManager.PERMISSION_READ), WRITE(MCRAccessManager.PERMISSION_WRITE),
32 DELETE(MCRAccessManager.PERMISSION_DELETE);
33
34 private String value;
35
36 MCRRestAPIACLPermission(final String value) {
37 this.value = value;
38 }
39
40 public static MCRRestAPIACLPermission resolve(final String permission) {
41 return Arrays.stream(values())
42 .filter(object -> object.value.equalsIgnoreCase(permission))
43 .findFirst()
44 .orElse(null);
45 }
46
47 @Override
48 public String toString() {
49 return this.value;
50 }
51
52 public static MCRRestAPIACLPermission fromMethod(final String method) {
53 switch (method) {
54 case HttpMethod.GET:
55 case HttpMethod.HEAD:
56 return READ;
57 case HttpMethod.DELETE:
58 return DELETE;
59 case HttpMethod.POST:
60 case HttpMethod.PUT:
61 case HttpMethod.PATCH:
62 return WRITE;
63 default:
64 return null;
65 }
66 }
67 }