-
Notifications
You must be signed in to change notification settings - Fork 140
/
Copy pathApplication.java
96 lines (79 loc) · 3.85 KB
/
Application.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package com.camunda.demo.springboot;
import static org.camunda.bpm.engine.authorization.Authorization.ANY;
import static org.camunda.bpm.engine.authorization.Authorization.AUTH_TYPE_GRANT;
import static org.camunda.bpm.engine.authorization.Permissions.ALL;
import static org.camunda.bpm.engine.authorization.Resources.FILTER;
import java.util.HashMap;
import java.util.Map;
import org.camunda.bpm.BpmPlatform;
import org.camunda.bpm.engine.ProcessEngine;
import org.camunda.bpm.engine.authorization.Authorization;
import org.camunda.bpm.engine.authorization.Groups;
import org.camunda.bpm.engine.authorization.Resource;
import org.camunda.bpm.engine.authorization.Resources;
import org.camunda.bpm.engine.filter.Filter;
import org.camunda.bpm.engine.identity.Group;
import org.camunda.bpm.engine.identity.User;
import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableProcessApplication
public class Application {
public static void main(String... args) {
SpringApplication.run(Application.class, args);
// do default setup of platform
ProcessEngine engine = BpmPlatform.getDefaultProcessEngine();
createDefaultUser(engine);
//setCamundaEELicenseKey(engine);
}
public static void createDefaultUser(ProcessEngine engine) {
// and add default user to Camunda to be ready-to-go
if (engine.getIdentityService().createUserQuery().userId("demo").count() == 0) {
User user = engine.getIdentityService().newUser("demo");
user.setFirstName("Demo");
user.setLastName("Demo");
user.setPassword("demo");
engine.getIdentityService().saveUser(user);
Group group = engine.getIdentityService().newGroup(Groups.CAMUNDA_ADMIN);
group.setName("Administrators");
group.setType(Groups.GROUP_TYPE_SYSTEM);
engine.getIdentityService().saveGroup(group);
for (Resource resource : Resources.values()) {
Authorization auth = engine.getAuthorizationService().createNewAuthorization(AUTH_TYPE_GRANT);
auth.setGroupId(Groups.CAMUNDA_ADMIN);
auth.addPermission(ALL);
auth.setResourceId(ANY);
auth.setResource(resource);
engine.getAuthorizationService().saveAuthorization(auth);
}
engine.getIdentityService().createMembership("demo", Groups.CAMUNDA_ADMIN);
}
// create default "all tasks" filter
if (engine.getFilterService().createFilterQuery().filterName("Alle").count() == 0) {
Map<String, Object> filterProperties = new HashMap<String, Object>();
filterProperties.put("description", "Alle Aufgaben");
filterProperties.put("priority", 10);
Filter filter = engine.getFilterService().newTaskFilter() //
.setName("Alle") //
.setProperties(filterProperties)//
.setOwner("demo")//
.setQuery(engine.getTaskService().createTaskQuery());
engine.getFilterService().saveFilter(filter);
// and authorize demo user for it
if (engine.getAuthorizationService().createAuthorizationQuery().resourceType(FILTER).resourceId(filter.getId()) //
.userIdIn("demo").count() == 0) {
Authorization managementGroupFilterRead = engine.getAuthorizationService().createNewAuthorization(Authorization.AUTH_TYPE_GRANT);
managementGroupFilterRead.setResource(FILTER);
managementGroupFilterRead.setResourceId(filter.getId());
managementGroupFilterRead.addPermission(ALL);
managementGroupFilterRead.setUserId("demo");
engine.getAuthorizationService().saveAuthorization(managementGroupFilterRead);
}
}
}
public static void setCamundaEELicenseKey(ProcessEngine engine) {
engine.getManagementService().setProperty("camunda-license-key", "xxxx");
}
}