Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Admin password, user email
- final String ADMIN_PASSWORD = "q";
- final String USR_EMAIL = "u1@mail.ru";
- final String session = "usrpwd:Admin:" + ADMIN_PASSWORD;
- final String usrEmail = USR_EMAIL;
- // id of the Root node
- final long ROOT = 3L;
- // id of the Project Root node. Note that hierarchy is Root / Project Root
- final long PROJECT_ROOT = 1L;
- // Filetypes
- final String FTProject = "com.triniforce.server.plugins.kernel.files.FTProject";
- final String FTIssue = "com.triniforce.server.plugins.kernel.files.FTIssue";
- final String FTUser = "com.triniforce.server.plugins.kernel.files.FTUser";
- final String FTUserToProject = "com.triniforce.server.plugins.kernel.files.FTUserToProject";
- final String CDOutline = "com.triniforce.server.plugins.kernel.cd.CDOutline";
- final String UserConnections = "com.triniforce.server.plugins.kernel.cd.UserConnections";
- // Id of Executor+, group with key "com.triniforce.server.plugins.kernel.files.FTGroup.keys.Executor+"
- final long executorPlusId = 155L;
- // Access level constants
- final int SECRET_LEVEL_UNCLASSIFIED = 0;
- final int SECRET_LEVEL_RESTRICTED = 100;
- final int SECRET_LEVEL_CONFIDENCIAL = 200;
- final int SECRET_LEVEL_SECRET = 300;
- final int SECRET_LEVEL_TOP_SECRET = 400;
- // Status constants
- final int NOT_STARTED = -1;
- final int EXECUTION = 0;
- final int WAITING = 1;
- final int COMPLETED = 2;
- // Create a project
- long project = pkApi.create(session, PROJECT_ROOT, FTProject, new Object[]{"name", "SOAP Test Project", "status", EXECUTION});
- long userId = 0;
- // Get userId by user email
- {
- SelectRequest sr = new SelectRequest();
- sr.setFiletype(FTUser);
- sr.setParentId(ROOT);
- sr.setColumns(new String[]{"id", "email"});
- sr.setSimpleWhere(new Object[]{"email", usrEmail});
- LongListResponse llr = pkApi.select(session, sr);
- userId = (long) llr.getValues()[0];
- }
- // Connect user to project as a Executor+
- pkApi.create(session, project, FTUserToProject
- , new Object[]{
- "user_id", userId
- , "group_id", executorPlusId
- , "access_level", SECRET_LEVEL_UNCLASSIFIED
- }
- );
- // Create project/task1, no assignee
- long task1 = pkApi.create(session, project, FTIssue
- , new Object[]{
- "name", "task1"
- }
- );
- // Create project/task1/task1_1, our user is "assignee"
- long task1_1 = pkApi.create(session, task1, FTIssue
- , new Object[]{
- "name", "task1_1"
- , "assignee_id", userId
- }
- );
- // Create project/task1/task1_1/task_1_1_1
- long task_1_1_1 = pkApi.create(session, task1_1, FTIssue
- , new Object[]{
- "name", "task1_1_1"
- }
- );
- // Create project/task2, our user is "assignee"
- long task2 = pkApi.create(session, project, FTIssue
- , new Object[]{
- "name", "task2"
- , "assignee_id", userId
- }
- );
- // List all tasks inside p
- {
- SelectRequest sr = new SelectRequest();
- sr.setFiletype(CDOutline);
- sr.setParentId(project);
- sr.setColumns(new String[]{"id", "name", "assignee_id"});
- sr.setArgs(new Object[]{"P", "0"}); // P - project view, 0 - do not fetch subtasks
- sr.setSimpleWhere(new Object[]{"assignee_id", userId});
- LongListResponse llr = pkApi.select(session, sr);
- // Only task1_1 and task2 should be listed
- assertTrue(Arrays.asList(llr.getValues()).contains("task1_1"));
- assertTrue(Arrays.asList(llr.getValues()).contains("task2"));
- assertFalse(Arrays.asList(llr.getValues()).contains("task1"));
- assertFalse(Arrays.asList(llr.getValues()).contains("task1_1_1"));
- }
- // List all user connections
- {
- SelectRequest sr = new SelectRequest();
- sr.setFiletype(UserConnections);
- sr.setParentId(ROOT);
- sr.setArgs(new Object[]{userId});
- sr.setColumns(new String[]{"connection_filetype", "connection_name", "access_level", "path", "parent_id"});
- LongListResponse llr = pkApi.select(session, sr);
- for( Object v: llr.getValues()){
- System.out.println(v);
- }
- /*
- Output is going to be like this:
- com.triniforce.server.plugins.kernel.files.FTUserToProject // the way we connect user to project, FTUserMembership is also possible
- Executor+
- 0
- Root/Project Root/SOAP Test Project
- 12895 // id of the project
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement