PageRenderTime 42ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/demo.php

https://bitbucket.org/calderhayes/aclcontrolprototype
PHP | 146 lines | 91 code | 41 blank | 14 comment | 0 complexity | e827379fb65b447d0e67e9114e799f85 MD5 | raw file
  1. <?php
  2. require_once('bootstrap.php');
  3. $transport = new Everyman\Neo4j\Transport('localhost', '7474');
  4. $client = new Everyman\Neo4j\Client($transport);
  5. //$dimensionIndex = new Everyman\Neo4j\Index\NodeIndex($client, 'dimensions');
  6. $usernames = array('bill', 'allen', 'jake', 'mike', 'bob');
  7. $userNode = new UserNode($client);
  8. $users = generateNodeData($userNode, $usernames);
  9. var_dump($users);
  10. $groupnames = array('admins', 'records', 'managers', 'project leads', 'field', 'accounting', 'coops');
  11. $groupNode = new GroupNode($client);
  12. $groups = generateNodeData($groupNode, $groupnames);
  13. var_dump($groups);
  14. $companyNames = array('bluesun', 'ibm', 'microsoft');
  15. $companyNode = new CompanyNode($client);
  16. $companies = generateNodeData($companyNode, $companyNames);
  17. var_dump($companies);
  18. //pr("\n\n\nstarting rels...\n");
  19. /*
  20. $groupRelMap = array();
  21. addRel($map, $groupNode, $groups, 'admins', 'managers');
  22. addRel($map, $groupNode, $groups, 'admins', 'records');
  23. addRel($map, $groupNode, $groups, 'managers', 'project leads');
  24. addRel($map, $groupNode, $groups, 'managers', 'field');
  25. addRel($map, $groupNode, $groups, 'managers', 'accounting');
  26. addRel($map, $groupNode, $groups, 'field', 'coops');
  27. //var_dump($map);
  28. */
  29. $companyNode->select(array_search('bluesun', $companies));
  30. $companyNode->addChild(array_search('admins', $groups));
  31. $companyNode->addChild(array_search('managers', $groups));
  32. $companyNode->addChild(array_search('records', $groups));
  33. $companyNode->addChild(array_search('field', $groups));
  34. $groupNode->select(array_search('managers', $groups));
  35. $groupNode->addChild(array_search('project leads', $groups));
  36. $groupNode->select(array_search('field', $groups));
  37. $groupNode->addChild(array_search('coops', $groups));
  38. $groupNode->select(array_search('records', $groups));
  39. $groupNode->addChild(array_search('accounting', $groups));
  40. $userNode->select(array_search('bill', $users));
  41. $userNode->addParent(array_search('admins', $groups));
  42. $userNode->select(array_search('allen', $users));
  43. $userNode->addParent(array_search('managers', $groups));
  44. $userNode->select(array_search('mike', $users));
  45. $userNode->addParent(array_search('accounting', $groups));
  46. $userNode->select(array_search('bob', $users));
  47. $userNode->addParent(array_search('field', $groups));
  48. $userNode->select(array_search('jake', $users));
  49. $userNode->addParent(array_search('field', $groups));
  50. $filenames = array('index.html', 'readme.txt', 'stub1.pdf', 'stub2.pdf', 'totrevenue.csv');
  51. $fileNode = new FileNode($client);
  52. $files = generateNodeData($fileNode, $filenames);
  53. var_dump($files);
  54. $dirnames = array('bluesundocs', 'external', 'internal', 'public', 'financials', 'payroll', 'bobspay');
  55. $dirNode = new DirectoryNode($client);
  56. $dirs = generateNodeData($dirNode, $dirnames);
  57. var_dump($dirs);
  58. $dirNode->select(array_search('bluesundocs', $dirs));
  59. $dirNode->addChild(array_search('external', $dirs));
  60. $dirNode->select(array_search('bluesundocs', $dirs));
  61. $dirNode->addChild(array_search('internal', $dirs));
  62. $dirNode->addChild(array_search('readme.txt', $files));
  63. $dirNode->select(array_search('external', $dirs));
  64. $dirNode->addChild(array_search('public', $dirs));
  65. $dirNode->select(array_search('internal', $dirs));
  66. $dirNode->addChild(array_search('financials', $dirs));
  67. $dirNode->select(array_search('financials', $dirs));
  68. $dirNode->addChild(array_search('payroll', $dirs));
  69. $dirNode->select(array_search('payroll', $dirs));
  70. $dirNode->addChild(array_search('bobspay', $dirs));
  71. $fileNode->select(array_search('index.html', $files));
  72. $fileNode->addParent(array_search('public', $dirs));
  73. $dirNode->select(array_search('bobspay', $dirs));
  74. $dirNode->addChild(array_search('stub1.pdf', $files));
  75. $dirNode->addChild(array_search('stub2.pdf', $files));
  76. $dirNode->addChild(array_search('totrevenue.csv', $files));
  77. $actionnames = array('root', 'readall', 'writeall', 'executeall', 'emailall');
  78. $actionNode = new ActionNode($client);
  79. $actions = generateNodeData($actionNode, $actionnames);
  80. var_dump($actions);
  81. $actionNode->select(array_search('root', $actions));
  82. $actionNode->addChild(array_search('readall', $actions));
  83. $actionNode->addChild(array_search('writeall', $actions));
  84. $actionNode->addChild(array_search('executeall', $actions));
  85. $actionNode->addChild(array_search('emailall', $actions));
  86. $statusnames = array('root', 'classified', 'highpriority', 'priority', 'lowpriority');
  87. $statusNode = new StatusNode($client);
  88. $statuses = generateNodeData($statusNode, $statusnames);
  89. var_dump($statuses);
  90. $statusNode->select(array_search('root', $statuses));
  91. $statusNode->addChild(array_search('classified', $statuses));
  92. $statusNode->select(array_search('classified', $statuses));
  93. $statusNode->addChild(array_search('highpriority', $statuses));
  94. $statusNode->select(array_search('highpriority', $statuses));
  95. $statusNode->addChild(array_search('priority', $statuses));
  96. $statusNode->select(array_search('priority', $statuses));
  97. $statusNode->addChild(array_search('lowpriority', $statuses));
  98. // Access node 1
  99. // Bob is granted view action on bobs pay
  100. $access = new ACLAccess($client);
  101. $access->insert(array_search('bob', $users), array_search('bobspay', $dirs), array_search('readall', $actions));
  102. pr('Access ID 1 = ' . $access->getId());
  103. $access->insert(array_search('admins', $groups), array_search('bluesundocs', $dirs), array_search('root', $actions));
  104. pr('Access ID 2 = ' . $access->getId());
  105. pr('DONE');