Advertisement
Guest User

Untitled

a guest
Jul 13th, 2016
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.46 KB | None | 0 0
  1.         // Admin password, user email
  2.        
  3.         final String ADMIN_PASSWORD = "q";
  4.         final String USR_EMAIL = "u1@mail.ru";
  5.         final String session = "usrpwd:Admin:" + ADMIN_PASSWORD;
  6.         final String usrEmail =  USR_EMAIL;
  7.  
  8.        
  9.         // id of the Root node
  10.         final long ROOT = 3L;
  11.        
  12.         // id of the Project Root node. Note that hierarchy is Root / Project Root
  13.         final long PROJECT_ROOT = 1L;
  14.        
  15.        
  16.         // Filetypes
  17.        
  18.         final String FTProject = "com.triniforce.server.plugins.kernel.files.FTProject";
  19.         final String FTIssue = "com.triniforce.server.plugins.kernel.files.FTIssue";
  20.         final String FTUser = "com.triniforce.server.plugins.kernel.files.FTUser";
  21.         final String FTUserToProject = "com.triniforce.server.plugins.kernel.files.FTUserToProject";
  22.        
  23.         final String CDOutline = "com.triniforce.server.plugins.kernel.cd.CDOutline";
  24.         final String UserConnections = "com.triniforce.server.plugins.kernel.cd.UserConnections";
  25.        
  26.         // Id of Executor+, group with key "com.triniforce.server.plugins.kernel.files.FTGroup.keys.Executor+"
  27.        
  28.         final long executorPlusId = 155L;
  29.        
  30.        
  31.         // Access level constants
  32.        
  33.         final int SECRET_LEVEL_UNCLASSIFIED = 0;
  34.         final int SECRET_LEVEL_RESTRICTED = 100;
  35.         final int SECRET_LEVEL_CONFIDENCIAL = 200;
  36.         final int SECRET_LEVEL_SECRET = 300;
  37.         final int SECRET_LEVEL_TOP_SECRET = 400;
  38.        
  39.         // Status constants
  40.        
  41.         final int NOT_STARTED = -1;
  42.         final int EXECUTION = 0;
  43.         final int WAITING = 1;
  44.         final int COMPLETED = 2;
  45.        
  46.  
  47.         // Create a project
  48.        
  49.         long project = pkApi.create(session, PROJECT_ROOT, FTProject, new Object[]{"name", "SOAP Test Project", "status", EXECUTION});
  50.        
  51.  
  52.         long userId = 0;
  53.        
  54.         // Get userId by user email
  55.         {
  56.             SelectRequest sr = new SelectRequest();
  57.             sr.setFiletype(FTUser);
  58.             sr.setParentId(ROOT);
  59.             sr.setColumns(new String[]{"id", "email"});
  60.             sr.setSimpleWhere(new Object[]{"email", usrEmail});
  61.             LongListResponse llr = pkApi.select(session, sr);
  62.             userId = (long) llr.getValues()[0];
  63.         }
  64.        
  65.         // Connect user to project as a Executor+
  66.        
  67.         pkApi.create(session, project, FTUserToProject
  68.                 , new Object[]{
  69.                         "user_id", userId
  70.                         ,  "group_id", executorPlusId
  71.                         ,  "access_level", SECRET_LEVEL_UNCLASSIFIED
  72.                 }
  73.         );
  74.        
  75.         // Create project/task1, no assignee
  76.        
  77.         long task1 = pkApi.create(session, project, FTIssue
  78.                 , new Object[]{
  79.                         "name", "task1"
  80.                 }
  81.         );
  82.        
  83.         // Create project/task1/task1_1, our user is "assignee"
  84.        
  85.         long task1_1 = pkApi.create(session, task1, FTIssue
  86.                 , new Object[]{
  87.                         "name", "task1_1"
  88.                         , "assignee_id", userId                    
  89.                 }
  90.         );
  91.        
  92.         // Create project/task1/task1_1/task_1_1_1
  93.        
  94.         long task_1_1_1 = pkApi.create(session, task1_1, FTIssue
  95.                 , new Object[]{
  96.                         "name", "task1_1_1"
  97.                    
  98.                 }
  99.         );
  100.        
  101.        
  102.         // Create project/task2, our user is "assignee"
  103.        
  104.         long task2 = pkApi.create(session, project, FTIssue
  105.                 , new Object[]{
  106.                         "name", "task2"
  107.                         , "assignee_id", userId
  108.                 }
  109.         );
  110.        
  111.         // List all tasks inside p
  112.         {
  113.             SelectRequest sr = new SelectRequest();
  114.             sr.setFiletype(CDOutline);
  115.             sr.setParentId(project);
  116.             sr.setColumns(new String[]{"id", "name", "assignee_id"});
  117.             sr.setArgs(new Object[]{"P", "0"}); // P - project view, 0 - do not fetch subtasks
  118.             sr.setSimpleWhere(new Object[]{"assignee_id", userId});
  119.             LongListResponse llr = pkApi.select(session, sr);
  120.            
  121.             // Only task1_1 and task2 should be listed
  122.            
  123.             assertTrue(Arrays.asList(llr.getValues()).contains("task1_1"));
  124.             assertTrue(Arrays.asList(llr.getValues()).contains("task2"));
  125.             assertFalse(Arrays.asList(llr.getValues()).contains("task1"));
  126.             assertFalse(Arrays.asList(llr.getValues()).contains("task1_1_1"));
  127.         }
  128.        
  129.         // List all user connections
  130.         {
  131.             SelectRequest sr = new SelectRequest();
  132.             sr.setFiletype(UserConnections);
  133.             sr.setParentId(ROOT);
  134.             sr.setArgs(new Object[]{userId});
  135.             sr.setColumns(new String[]{"connection_filetype", "connection_name", "access_level", "path", "parent_id"});
  136.             LongListResponse llr = pkApi.select(session, sr);
  137.             for( Object v: llr.getValues()){
  138.                 System.out.println(v);
  139.             }
  140.            
  141.             /*
  142.                 Output is going to be like this:
  143.                
  144.                 com.triniforce.server.plugins.kernel.files.FTUserToProject // the way we connect user to project, FTUserMembership is also possible
  145.                 Executor+                                                  
  146.                 0
  147.                 Root/Project Root/SOAP Test Project
  148.                 12895 // id of the project
  149.                              
  150.              */
  151.            
  152.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement