girder 3.2.2.dev2__tar.gz → 3.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) hide show
  1. {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/config.yml +2 -2
  2. {girder-3.2.2.dev2 → girder-3.2.3}/.readthedocs.yml +1 -0
  3. {girder-3.2.2.dev2 → girder-3.2.3}/PKG-INFO +1 -1
  4. {girder-3.2.2.dev2 → girder-3.2.3}/docs/conf.py +2 -1
  5. {girder-3.2.2.dev2 → girder-3.2.3}/docs/python-client.rst +8 -2
  6. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/assetstore.py +5 -1
  7. {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/mount.py +78 -12
  8. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/abstract_assetstore_adapter.py +3 -1
  9. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/fontello.config.json +28 -0
  10. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/AssetstoresView.js +1 -0
  11. {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/PKG-INFO +1 -1
  12. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/rest.py +18 -7
  13. girder-3.2.3/plugins/oauth/girder_oauth/web_client/main.js +21 -0
  14. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/plugin_tests/oauth_test.py +7 -49
  15. girder-3.2.2.dev2/plugins/oauth/girder_oauth/web_client/main.js +0 -5
  16. {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/Dockerfile +0 -0
  17. {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/create_ansible_subtree.sh +0 -0
  18. {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/generatePyEnvChecksum.sh +0 -0
  19. {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/publish_npm.sh +0 -0
  20. {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/publish_pypi.sh +0 -0
  21. {girder-3.2.2.dev2 → girder-3.2.3}/.codecov.yml +0 -0
  22. {girder-3.2.2.dev2 → girder-3.2.3}/.dockerignore +0 -0
  23. {girder-3.2.2.dev2 → girder-3.2.3}/.editorconfig +0 -0
  24. {girder-3.2.2.dev2 → girder-3.2.3}/.gitignore +0 -0
  25. {girder-3.2.2.dev2 → girder-3.2.3}/CHANGELOG.rst +0 -0
  26. {girder-3.2.2.dev2 → girder-3.2.3}/CMakeLists.txt +0 -0
  27. {girder-3.2.2.dev2 → girder-3.2.3}/CONTRIBUTING.rst +0 -0
  28. {girder-3.2.2.dev2 → girder-3.2.3}/Dockerfile +0 -0
  29. {girder-3.2.2.dev2 → girder-3.2.3}/LICENSE +0 -0
  30. {girder-3.2.2.dev2 → girder-3.2.3}/MANIFEST.in +0 -0
  31. {girder-3.2.2.dev2 → girder-3.2.3}/README.rst +0 -0
  32. {girder-3.2.2.dev2 → girder-3.2.3}/Vagrantfile +0 -0
  33. {girder-3.2.2.dev2 → girder-3.2.3}/clients/python/README.rst +0 -0
  34. {girder-3.2.2.dev2 → girder-3.2.3}/clients/python/girder_client/__init__.py +0 -0
  35. {girder-3.2.2.dev2 → girder-3.2.3}/clients/python/girder_client/cli.py +0 -0
  36. {girder-3.2.2.dev2 → girder-3.2.3}/clients/python/setup.py +0 -0
  37. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/.yamllint +0 -0
  38. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/LICENSE +0 -0
  39. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/README.md +0 -0
  40. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/defaults/main.yml +0 -0
  41. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/handlers/main.yml +0 -0
  42. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/library/.gitignore +0 -0
  43. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/library/README.md +0 -0
  44. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/library/girder.py +0 -0
  45. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/meta/main.yml +0 -0
  46. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/converge.yml +0 -0
  47. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test1.txt +0 -0
  48. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test2.txt +0 -0
  49. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test3.txt +0 -0
  50. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/molecule.yml +0 -0
  51. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/prepare.yml +0 -0
  52. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/requirements.yml +0 -0
  53. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_access.yml +0 -0
  54. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_apikey.yml +0 -0
  55. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_assetstore.yml +0 -0
  56. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_files.yml +0 -0
  57. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_hierarchy.yml +0 -0
  58. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_resources.yml +0 -0
  59. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_setting.yml +0 -0
  60. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_user.yml +0 -0
  61. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/converge.yml +0 -0
  62. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/molecule.yml +0 -0
  63. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/prepare.yml +0 -0
  64. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/pytest.ini +0 -0
  65. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/tests/test_default.py +0 -0
  66. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/tasks/main.yml +0 -0
  67. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/tasks/nodejs.yml +0 -0
  68. {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/templates/daemon/girder.service.j2 +0 -0
  69. {girder-3.2.2.dev2 → girder-3.2.3}/devops/deployment-template/hosts.yml +0 -0
  70. {girder-3.2.2.dev2 → girder-3.2.3}/devops/deployment-template/playbook.yml +0 -0
  71. {girder-3.2.2.dev2 → girder-3.2.3}/devops/deployment-template/provision.sh +0 -0
  72. {girder-3.2.2.dev2 → girder-3.2.3}/devops/deployment-template/requirements.yml +0 -0
  73. {girder-3.2.2.dev2 → girder-3.2.3}/devops/vagrant/.gitignore +0 -0
  74. {girder-3.2.2.dev2 → girder-3.2.3}/devops/vagrant/ansible.cfg +0 -0
  75. {girder-3.2.2.dev2 → girder-3.2.3}/devops/vagrant/vagrant-playbook.yml +0 -0
  76. {girder-3.2.2.dev2 → girder-3.2.3}/devops/vagrant/vagrant-requirements.yml +0 -0
  77. {girder-3.2.2.dev2 → girder-3.2.3}/docker-compose.yml +0 -0
  78. {girder-3.2.2.dev2 → girder-3.2.3}/docs/admin-docs.rst +0 -0
  79. {girder-3.2.2.dev2 → girder-3.2.3}/docs/api-docs.rst +0 -0
  80. {girder-3.2.2.dev2 → girder-3.2.3}/docs/build-docs.rst +0 -0
  81. {girder-3.2.2.dev2 → girder-3.2.3}/docs/changelog.rst +0 -0
  82. {girder-3.2.2.dev2 → girder-3.2.3}/docs/configuration.rst +0 -0
  83. {girder-3.2.2.dev2 → girder-3.2.3}/docs/dependencies.rst +0 -0
  84. {girder-3.2.2.dev2 → girder-3.2.3}/docs/deployment-alternatives.rst +0 -0
  85. {girder-3.2.2.dev2 → girder-3.2.3}/docs/deployment.rst +0 -0
  86. {girder-3.2.2.dev2 → girder-3.2.3}/docs/dev-installation.rst +0 -0
  87. {girder-3.2.2.dev2 → girder-3.2.3}/docs/developer-cookbook.rst +0 -0
  88. {girder-3.2.2.dev2 → girder-3.2.3}/docs/developer-docs.rst +0 -0
  89. {girder-3.2.2.dev2 → girder-3.2.3}/docs/development.rst +0 -0
  90. {girder-3.2.2.dev2 → girder-3.2.3}/docs/external-web-clients.rst +0 -0
  91. {girder-3.2.2.dev2 → girder-3.2.3}/docs/favicon.ico +0 -0
  92. {girder-3.2.2.dev2 → girder-3.2.3}/docs/images/dicom-viewer.png +0 -0
  93. {girder-3.2.2.dev2 → girder-3.2.3}/docs/index.rst +0 -0
  94. {girder-3.2.2.dev2 → girder-3.2.3}/docs/license.png +0 -0
  95. {girder-3.2.2.dev2 → girder-3.2.3}/docs/migration-guide.rst +0 -0
  96. {girder-3.2.2.dev2 → girder-3.2.3}/docs/mount.rst +0 -0
  97. {girder-3.2.2.dev2 → girder-3.2.3}/docs/plugin-development.rst +0 -0
  98. {girder-3.2.2.dev2 → girder-3.2.3}/docs/plugins.rst +0 -0
  99. {girder-3.2.2.dev2 → girder-3.2.3}/docs/requirements-docs.txt +0 -0
  100. {girder-3.2.2.dev2 → girder-3.2.3}/docs/security.rst +0 -0
  101. {girder-3.2.2.dev2 → girder-3.2.3}/docs/sftp.rst +0 -0
  102. {girder-3.2.2.dev2 → girder-3.2.3}/docs/user-docs.rst +0 -0
  103. {girder-3.2.2.dev2 → girder-3.2.3}/docs/user-guide.rst +0 -0
  104. {girder-3.2.2.dev2 → girder-3.2.3}/girder/__init__.py +0 -0
  105. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/__init__.py +0 -0
  106. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/access.py +0 -0
  107. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/api_docs.mako +0 -0
  108. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/api_main.py +0 -0
  109. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/describe.py +0 -0
  110. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/docs.py +0 -0
  111. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/filter_logging.py +0 -0
  112. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/rest.py +0 -0
  113. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/sftp.py +0 -0
  114. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/__init__.py +0 -0
  115. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/api_key.py +0 -0
  116. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/collection.py +0 -0
  117. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/file.py +0 -0
  118. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/folder.py +0 -0
  119. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/group.py +0 -0
  120. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/item.py +0 -0
  121. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/notification.py +0 -0
  122. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/resource.py +0 -0
  123. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/system.py +0 -0
  124. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/token.py +0 -0
  125. {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/user.py +0 -0
  126. {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/__init__.py +0 -0
  127. {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/build.py +0 -0
  128. {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/serve.py +0 -0
  129. {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/sftpd.py +0 -0
  130. {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/shell.py +0 -0
  131. {girder-3.2.2.dev2 → girder-3.2.3}/girder/conf/girder.dist.cfg +0 -0
  132. {girder-3.2.2.dev2 → girder-3.2.3}/girder/constants.py +0 -0
  133. {girder-3.2.2.dev2 → girder-3.2.3}/girder/events.py +0 -0
  134. {girder-3.2.2.dev2 → girder-3.2.3}/girder/exceptions.py +0 -0
  135. {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/_footer.mako +0 -0
  136. {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/_header.mako +0 -0
  137. {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/accountApproval.mako +0 -0
  138. {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/accountApproved.mako +0 -0
  139. {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/emailVerification.mako +0 -0
  140. {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/groupInvite.mako +0 -0
  141. {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/temporaryAccess.mako +0 -0
  142. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/__init__.py +0 -0
  143. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/api_key.py +0 -0
  144. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/assetstore.py +0 -0
  145. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/collection.py +0 -0
  146. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/file.py +0 -0
  147. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/folder.py +0 -0
  148. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/group.py +0 -0
  149. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/item.py +0 -0
  150. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/model_base.py +0 -0
  151. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/notification.py +0 -0
  152. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/setting.py +0 -0
  153. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/token.py +0 -0
  154. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/upload.py +0 -0
  155. {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/user.py +0 -0
  156. {girder-3.2.2.dev2 → girder-3.2.3}/girder/plugin.py +0 -0
  157. {girder-3.2.2.dev2 → girder-3.2.3}/girder/settings.py +0 -0
  158. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/__init__.py +0 -0
  159. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/_cache.py +0 -0
  160. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/_hash_state.py +0 -0
  161. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/acl_mixin.py +0 -0
  162. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/assetstore_utilities.py +0 -0
  163. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/config.py +0 -0
  164. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/error.mako +0 -0
  165. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/filesystem_assetstore_adapter.py +0 -0
  166. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/gridfs_assetstore_adapter.py +0 -0
  167. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/mail_utils.py +0 -0
  168. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/model_importer.py +0 -0
  169. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/path.py +0 -0
  170. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/progress.py +0 -0
  171. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/s3_assetstore_adapter.py +0 -0
  172. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/search.py +0 -0
  173. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/server.py +0 -0
  174. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/setting_utilities.py +0 -0
  175. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/system.py +0 -0
  176. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/webroot.mako +0 -0
  177. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/webroot.py +0 -0
  178. {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/ziputil.py +0 -0
  179. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/.gitignore +0 -0
  180. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/Gruntfile.js +0 -0
  181. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/.gitignore +0 -0
  182. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/.npmignore +0 -0
  183. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/README.md +0 -0
  184. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/index.js +0 -0
  185. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/package-lock.json +0 -0
  186. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/package.json +0 -0
  187. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/.gitignore +0 -0
  188. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/.npmignore +0 -0
  189. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/Gruntfile.js +0 -0
  190. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/README.md +0 -0
  191. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/package-lock.json +0 -0
  192. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/package.json +0 -0
  193. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/build.js +0 -0
  194. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/swagger.js +0 -0
  195. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/test.js +0 -0
  196. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/webpack.config.js +0 -0
  197. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/webpack.paths.js +0 -0
  198. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/webpack.plugins.js +0 -0
  199. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/package.json.template +0 -0
  200. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/.gitignore +0 -0
  201. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/.npmignore +0 -0
  202. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/README.md +0 -0
  203. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/index.js +0 -0
  204. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/package-lock.json +0 -0
  205. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/package.json +0 -0
  206. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/assets/Girder_Mark.png +0 -0
  207. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/auth.js +0 -0
  208. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/ApiKeyCollection.js +0 -0
  209. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/AssetstoreCollection.js +0 -0
  210. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/Collection.js +0 -0
  211. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/CollectionCollection.js +0 -0
  212. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/FileCollection.js +0 -0
  213. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/FolderCollection.js +0 -0
  214. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/GroupCollection.js +0 -0
  215. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/ItemCollection.js +0 -0
  216. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/UserCollection.js +0 -0
  217. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/index.js +0 -0
  218. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/constants.js +0 -0
  219. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/dialog.js +0 -0
  220. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/events.js +0 -0
  221. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/index.js +0 -0
  222. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/main.js +0 -0
  223. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/misc.js +0 -0
  224. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/AccessControlledModel.js +0 -0
  225. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/ApiKeyModel.js +0 -0
  226. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/AssetstoreModel.js +0 -0
  227. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/CollectionCreationPolicyModel.js +0 -0
  228. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/CollectionModel.js +0 -0
  229. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/FileModel.js +0 -0
  230. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/FolderModel.js +0 -0
  231. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/GroupModel.js +0 -0
  232. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/ItemModel.js +0 -0
  233. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/MetadataMixin.js +0 -0
  234. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/Model.js +0 -0
  235. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/UserModel.js +0 -0
  236. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/index.js +0 -0
  237. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/package.json +0 -0
  238. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/pluginUtils.js +0 -0
  239. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/rest.js +0 -0
  240. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/router.js +0 -0
  241. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/routes.js +0 -0
  242. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/apidocs/apidocs.styl +0 -0
  243. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/adminConsole.styl +0 -0
  244. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/assetstores.styl +0 -0
  245. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/collectionList.styl +0 -0
  246. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/collectionPage.styl +0 -0
  247. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/frontPage.styl +0 -0
  248. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/groupList.styl +0 -0
  249. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/groupPage.styl +0 -0
  250. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/itemPage.styl +0 -0
  251. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/plugins.styl +0 -0
  252. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/searchResultsList.styl +0 -0
  253. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/systemConfig.styl +0 -0
  254. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/userAccount.styl +0 -0
  255. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/userList.styl +0 -0
  256. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/userPage.styl +0 -0
  257. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/footer.styl +0 -0
  258. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/global.styl +0 -0
  259. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/globalNav.styl +0 -0
  260. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/header.styl +0 -0
  261. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/headerUser.styl +0 -0
  262. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/layout.styl +0 -0
  263. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/layoutVars.styl +0 -0
  264. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/loading.styl +0 -0
  265. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/progressArea.styl +0 -0
  266. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/accessWidget.styl +0 -0
  267. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/browserWidget.styl +0 -0
  268. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/hierarchyWidget.styl +0 -0
  269. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/markdownWidget.styl +0 -0
  270. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/metadataWidget.styl +0 -0
  271. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/searchFieldWidget.styl +0 -0
  272. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/taskProgress.styl +0 -0
  273. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/timelineWidget.styl +0 -0
  274. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/uploadWidget.styl +0 -0
  275. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/userOtpManagementWidget.styl +0 -0
  276. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/adminConsole.pug +0 -0
  277. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/assetstores.pug +0 -0
  278. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/collectionList.pug +0 -0
  279. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/collectionPage.pug +0 -0
  280. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/filesystemImport.pug +0 -0
  281. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/frontPage.pug +0 -0
  282. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/groupList.pug +0 -0
  283. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/groupPage.pug +0 -0
  284. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/itemPage.pug +0 -0
  285. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/plugins.pug +0 -0
  286. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/s3Import.pug +0 -0
  287. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/searchResults.pug +0 -0
  288. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/searchResultsType.pug +0 -0
  289. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/systemConfiguration.pug +0 -0
  290. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/userAccount.pug +0 -0
  291. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/userList.pug +0 -0
  292. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/userPage.pug +0 -0
  293. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/alert.pug +0 -0
  294. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layout.pug +0 -0
  295. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutFooter.pug +0 -0
  296. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutGlobalNav.pug +0 -0
  297. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutHeader.pug +0 -0
  298. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutHeaderUser.pug +0 -0
  299. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutProgressArea.pug +0 -0
  300. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/loginDialog.pug +0 -0
  301. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/registerDialog.pug +0 -0
  302. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/resetPasswordDialog.pug +0 -0
  303. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/accessEditor.pug +0 -0
  304. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/accessEditorMixins.pug +0 -0
  305. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/accessEditorNonModal.pug +0 -0
  306. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/accessEntry.pug +0 -0
  307. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/apiKeyList.pug +0 -0
  308. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/browserWidget.pug +0 -0
  309. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/checkedActionsMenu.pug +0 -0
  310. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/collectionInfoDialog.pug +0 -0
  311. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/confirmDialog.pug +0 -0
  312. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/dateTimeRangeWidget.pug +0 -0
  313. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/dateTimeWidget.pug +0 -0
  314. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editApiKeyWidget.pug +0 -0
  315. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editAssetstoreWidget.pug +0 -0
  316. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editCollectionWidget.pug +0 -0
  317. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editFileWidget.pug +0 -0
  318. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editFolderWidget.pug +0 -0
  319. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editGroupWidget.pug +0 -0
  320. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editItemWidget.pug +0 -0
  321. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/fileInfoDialog.pug +0 -0
  322. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/fileList.pug +0 -0
  323. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/folderInfoDialog.pug +0 -0
  324. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/folderList.pug +0 -0
  325. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupAdminList.pug +0 -0
  326. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupInviteDialog.pug +0 -0
  327. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupInviteList.pug +0 -0
  328. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupMemberList.pug +0 -0
  329. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupModList.pug +0 -0
  330. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/hierarchyBreadcrumb.pug +0 -0
  331. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/hierarchyPaginated.pug +0 -0
  332. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/hierarchyWidget.pug +0 -0
  333. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/itemBreadcrumb.pug +0 -0
  334. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/itemList.pug +0 -0
  335. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/jsonMetadatumEditWidget.pug +0 -0
  336. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/jsonMetadatumView.pug +0 -0
  337. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/loadingAnimation.pug +0 -0
  338. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/markdownWidget.pug +0 -0
  339. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/metadataWidget.pug +0 -0
  340. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/metadatumEditWidget.pug +0 -0
  341. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/metadatumView.pug +0 -0
  342. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/newAssetstore.pug +0 -0
  343. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/paginateWidget.pug +0 -0
  344. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/pluginConfigBreadcrumb.pug +0 -0
  345. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/rootSelectorWidget.pug +0 -0
  346. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/searchField.pug +0 -0
  347. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/searchHelp.pug +0 -0
  348. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/searchModeSelect.pug +0 -0
  349. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/searchResults.pug +0 -0
  350. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/sortCollectionWidget.pug +0 -0
  351. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/taskProgress.pug +0 -0
  352. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/timeline.pug +0 -0
  353. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/uploadWidget.pug +0 -0
  354. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/uploadWidgetMixins.pug +0 -0
  355. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/uploadWidgetNonModal.pug +0 -0
  356. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/userOtpBegin.pug +0 -0
  357. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/userOtpDisable.pug +0 -0
  358. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/userOtpEnable.pug +0 -0
  359. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/EventStream.js +0 -0
  360. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/PluginUtils.js +0 -0
  361. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/S3UploadHandler.js +0 -0
  362. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/index.js +0 -0
  363. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/jquery/girderEnable.js +0 -0
  364. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/jquery/girderModal.js +0 -0
  365. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/version.js +0 -0
  366. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/App.js +0 -0
  367. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/View.js +0 -0
  368. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/AdminView.js +0 -0
  369. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/CollectionView.js +0 -0
  370. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/CollectionsView.js +0 -0
  371. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/FilesystemImportView.js +0 -0
  372. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/FolderView.js +0 -0
  373. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/FrontPageView.js +0 -0
  374. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/GroupView.js +0 -0
  375. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/GroupsView.js +0 -0
  376. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/ItemView.js +0 -0
  377. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/PluginsView.js +0 -0
  378. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/S3ImportView.js +0 -0
  379. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/SearchResultsView.js +0 -0
  380. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/SystemConfigurationView.js +0 -0
  381. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/UserAccountView.js +0 -0
  382. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/UserView.js +0 -0
  383. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/UsersView.js +0 -0
  384. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/index.js +0 -0
  385. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/index.js +0 -0
  386. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/FooterView.js +0 -0
  387. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/GlobalNavView.js +0 -0
  388. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/HeaderUserView.js +0 -0
  389. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/HeaderView.js +0 -0
  390. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/LoginView.js +0 -0
  391. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/ProgressListView.js +0 -0
  392. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/RegisterView.js +0 -0
  393. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/ResetPasswordView.js +0 -0
  394. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/index.js +0 -0
  395. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/AccessWidget.js +0 -0
  396. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/ApiKeyListWidget.js +0 -0
  397. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/BrowserWidget.js +0 -0
  398. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/CheckedMenuWidget.js +0 -0
  399. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/CollectionInfoWidget.js +0 -0
  400. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/DateTimeRangeWidget.js +0 -0
  401. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/DateTimeWidget.js +0 -0
  402. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditApiKeyWidget.js +0 -0
  403. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditAssetstoreWidget.js +0 -0
  404. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditCollectionWidget.js +0 -0
  405. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditFileWidget.js +0 -0
  406. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditFolderWidget.js +0 -0
  407. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditGroupWidget.js +0 -0
  408. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditItemWidget.js +0 -0
  409. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/FileInfoWidget.js +0 -0
  410. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/FileListWidget.js +0 -0
  411. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/FolderInfoWidget.js +0 -0
  412. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/FolderListWidget.js +0 -0
  413. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/GroupAdminsWidget.js +0 -0
  414. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/GroupInvitesWidget.js +0 -0
  415. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/GroupMembersWidget.js +0 -0
  416. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/GroupModsWidget.js +0 -0
  417. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/HierarchyWidget.js +0 -0
  418. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/ItemBreadcrumbWidget.js +0 -0
  419. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/ItemListWidget.js +0 -0
  420. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/LoadingAnimation.js +0 -0
  421. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/MarkdownWidget.js +0 -0
  422. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/MetadataWidget.js +0 -0
  423. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/NewAssetstoreWidget.js +0 -0
  424. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/PaginateWidget.js +0 -0
  425. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/PluginConfigBreadcrumbWidget.js +0 -0
  426. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/RootSelectorWidget.js +0 -0
  427. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/SearchFieldWidget.js +0 -0
  428. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/SearchPaginateWidget.js +0 -0
  429. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/SortCollectionWidget.js +0 -0
  430. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/TaskProgressWidget.js +0 -0
  431. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/TimelineWidget.js +0 -0
  432. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/UploadWidget.js +0 -0
  433. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/UserOtpManagementWidget.js +0 -0
  434. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/index.js +0 -0
  435. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/static/.gitignore +0 -0
  436. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/static/built/.gitignore +0 -0
  437. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/static/girder-swagger.js +0 -0
  438. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/static/img/Girder_Favicon.png +0 -0
  439. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/fake.jpg +0 -0
  440. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/lib/jasmine-1.3.1/ConsoleReporter.js +0 -0
  441. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/lib/jasmine-1.3.1/MIT.LICENSE.txt +0 -0
  442. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.css +0 -0
  443. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.js +0 -0
  444. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/specRunner.js +0 -0
  445. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testEnv.pug +0 -0
  446. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testFile.csv +0 -0
  447. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testFile.tsv +0 -0
  448. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testFile.txt +0 -0
  449. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testFile2 +0 -0
  450. {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testUtils.js +0 -0
  451. {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/SOURCES.txt +0 -0
  452. {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/dependency_links.txt +0 -0
  453. {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/entry_points.txt +0 -0
  454. {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/not-zip-safe +0 -0
  455. {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/requires.txt +0 -0
  456. {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/top_level.txt +0 -0
  457. {girder-3.2.2.dev2 → girder-3.2.3}/package-lock.json +0 -0
  458. {girder-3.2.2.dev2 → girder-3.2.3}/package.json +0 -0
  459. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/.gitignore +0 -0
  460. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/audit_logs/girder_audit_logs/__init__.py +0 -0
  461. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/audit_logs/girder_audit_logs/cleanup.py +0 -0
  462. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/audit_logs/girder_audit_logs/report.py +0 -0
  463. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/audit_logs/setup.py +0 -0
  464. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/__init__.py +0 -0
  465. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/constants.py +0 -0
  466. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/mail_templates/authorized_upload.uploadFinished.mako +0 -0
  467. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/rest.py +0 -0
  468. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/main.js +0 -0
  469. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/package.json +0 -0
  470. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/routes.js +0 -0
  471. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizeUpload.styl +0 -0
  472. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizedUpload.styl +0 -0
  473. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizeUpload.pug +0 -0
  474. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizedUpload.pug +0 -0
  475. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/folderActions.pug +0 -0
  476. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizeUploadView.js +0 -0
  477. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizedUploadView.js +0 -0
  478. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/plugin_tests/__init__.py +0 -0
  479. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/plugin_tests/authorizedUploadSpec.js +0 -0
  480. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/plugin_tests/upload_test.py +0 -0
  481. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/setup.py +0 -0
  482. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/__init__.py +0 -0
  483. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/settings.py +0 -0
  484. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/main.js +0 -0
  485. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/package.json +0 -0
  486. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/routes.js +0 -0
  487. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/stylesheets/configView.styl +0 -0
  488. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/templates/configView.pug +0 -0
  489. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/views/ConfigView.js +0 -0
  490. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/plugin_tests/__init__.py +0 -0
  491. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/plugin_tests/autojoinSpec.js +0 -0
  492. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/plugin_tests/autojoin_test.py +0 -0
  493. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/setup.py +0 -0
  494. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/__init__.py +0 -0
  495. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/event_helper.py +0 -0
  496. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/main.js +0 -0
  497. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/package.json +0 -0
  498. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomItem.styl +0 -0
  499. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomSliceMetadata.styl +0 -0
  500. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomItem.pug +0 -0
  501. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomSliceMetadata.pug +0 -0
  502. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/parseDicomItem.pug +0 -0
  503. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/views/DicomView.js +0 -0
  504. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/webpack.helper.js +0 -0
  505. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/__init__.py +0 -0
  506. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/data/000000.dcm.sha512 +0 -0
  507. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/data/000001.dcm.sha512 +0 -0
  508. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/data/000002.dcm.sha512 +0 -0
  509. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/data/000003.dcm.sha512 +0 -0
  510. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/dicom_viewer_test.py +0 -0
  511. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/setup.py +0 -0
  512. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/girder_download_statistics/__init__.py +0 -0
  513. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/plugin_tests/__init__.py +0 -0
  514. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/plugin_tests/download_statistics_test.py +0 -0
  515. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/plugin_tests/files/txt1.txt +0 -0
  516. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/plugin_tests/files/txt2.txt +0 -0
  517. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/setup.py +0 -0
  518. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/__init__.py +0 -0
  519. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/rest.py +0 -0
  520. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/settings.py +0 -0
  521. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/lib/backbone.analytics.js +0 -0
  522. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/main.js +0 -0
  523. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/package.json +0 -0
  524. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/routes.js +0 -0
  525. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/stylesheets/configView.styl +0 -0
  526. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/templates/configView.pug +0 -0
  527. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/views/ConfigView.js +0 -0
  528. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/plugin_tests/__init__.py +0 -0
  529. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/plugin_tests/google_analytics_test.py +0 -0
  530. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/setup.py +0 -0
  531. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/__init__.py +0 -0
  532. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/settings.py +0 -0
  533. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/main.js +0 -0
  534. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/models/UserModel.js +0 -0
  535. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/package.json +0 -0
  536. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/routes.js +0 -0
  537. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/templates/configView.pug +0 -0
  538. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/views/ConfigView.js +0 -0
  539. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/plugin_tests/__init__.py +0 -0
  540. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/plugin_tests/gravatar_test.py +0 -0
  541. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/setup.py +0 -0
  542. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/__init__.py +0 -0
  543. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/settings.py +0 -0
  544. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/main.js +0 -0
  545. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/package.json +0 -0
  546. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/stylesheets/hashsumDownloadFileInfoWidget.styl +0 -0
  547. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/config.pug +0 -0
  548. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/hashsumDownloadFileInfoWidget.pug +0 -0
  549. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/views/ConfigView.js +0 -0
  550. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/views/FileInfoWidget.js +0 -0
  551. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/plugin_tests/__init__.py +0 -0
  552. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/plugin_tests/hashsumSpec.js +0 -0
  553. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/plugin_tests/hashsum_download_test.py +0 -0
  554. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/setup.py +0 -0
  555. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/__init__.py +0 -0
  556. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/constants.py +0 -0
  557. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/rest.py +0 -0
  558. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/settings.py +0 -0
  559. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/main.js +0 -0
  560. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/package.json +0 -0
  561. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/routes.js +0 -0
  562. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/stylesheets/configView.styl +0 -0
  563. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/templates/configView.pug +0 -0
  564. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/views/ConfigView.js +0 -0
  565. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/views/FrontPageView.js +0 -0
  566. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/plugin_tests/__init__.py +0 -0
  567. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/plugin_tests/homepageSpec.js +0 -0
  568. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/plugin_tests/homepage_test.py +0 -0
  569. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/setup.py +0 -0
  570. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/__init__.py +0 -0
  571. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/rest.py +0 -0
  572. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/settings.py +0 -0
  573. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/main.js +0 -0
  574. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/package.json +0 -0
  575. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/routes.js +0 -0
  576. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/stylesheets/configView.styl +0 -0
  577. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/templates/configView.pug +0 -0
  578. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/templates/itemLicenseWidget.pug +0 -0
  579. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/templates/selectLicenseWidget.pug +0 -0
  580. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/ConfigView.js +0 -0
  581. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/EditItemWidget.js +0 -0
  582. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/HierarchyWidget.js +0 -0
  583. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemLicenseWidget.js +0 -0
  584. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemView.js +0 -0
  585. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/SelectLicenseWidget.js +0 -0
  586. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/UploadWidget.js +0 -0
  587. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/plugin_tests/__init__.py +0 -0
  588. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/plugin_tests/itemLicensesSpec.js +0 -0
  589. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/plugin_tests/item_licenses_test.py +0 -0
  590. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/setup.py +0 -0
  591. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/__init__.py +0 -0
  592. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/constants.py +0 -0
  593. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/job_rest.py +0 -0
  594. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/models/__init__.py +0 -0
  595. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/models/job.py +0 -0
  596. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/JobStatus.js +0 -0
  597. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/collections/JobCollection.js +0 -0
  598. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/collections/index.js +0 -0
  599. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/index.js +0 -0
  600. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/main.js +0 -0
  601. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/models/JobModel.js +0 -0
  602. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/models/index.js +0 -0
  603. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/package.json +0 -0
  604. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/routes.js +0 -0
  605. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/stylesheets/jobDetailsWidget.styl +0 -0
  606. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/stylesheets/jobListWidget.styl +0 -0
  607. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/adminViewMenuItem.pug +0 -0
  608. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/headerUserViewMenu.pug +0 -0
  609. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxContent.pug +0 -0
  610. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxMenu.pug +0 -0
  611. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobDetailsWidget.pug +0 -0
  612. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobList.pug +0 -0
  613. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobListWidget.pug +0 -0
  614. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobsGraphWidget.pug +0 -0
  615. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/AdminView.js +0 -0
  616. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/CheckBoxMenu.js +0 -0
  617. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/HeaderUserView.js +0 -0
  618. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/JobDetailsWidget.js +0 -0
  619. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/JobGraphWidget.js +0 -0
  620. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/JobListWidget.js +0 -0
  621. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/index.js +0 -0
  622. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/timeChartConfig.js +0 -0
  623. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/timingHistoryChartConfig.js +0 -0
  624. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/plugin_tests/__init__.py +0 -0
  625. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/plugin_tests/jobsSpec.js +0 -0
  626. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/plugin_tests/jobs_test.py +0 -0
  627. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/plugin_tests/local_job_impl.py +0 -0
  628. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/setup.py +0 -0
  629. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/__init__.py +0 -0
  630. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/settings.py +0 -0
  631. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/main.js +0 -0
  632. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/package.json +0 -0
  633. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/routes.js +0 -0
  634. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/stylesheets/configView.styl +0 -0
  635. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/templates/configView.pug +0 -0
  636. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/templates/editServerMixin.pug +0 -0
  637. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/templates/newServerTemplate.pug +0 -0
  638. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/views/ConfigView.js +0 -0
  639. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/plugin_tests/__init__.py +0 -0
  640. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/plugin_tests/ldap_test.py +0 -0
  641. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/setup.py +0 -0
  642. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/__init__.py +0 -0
  643. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/__init__.py +0 -0
  644. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/base.py +0 -0
  645. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/bitbucket.py +0 -0
  646. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/box.py +0 -0
  647. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/github.py +0 -0
  648. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/globus.py +0 -0
  649. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/google.py +0 -0
  650. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/linkedin.py +0 -0
  651. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/microsoft.py +0 -0
  652. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/settings.py +0 -0
  653. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/package.json +0 -0
  654. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/routes.js +0 -0
  655. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/stylesheets/configView.styl +0 -0
  656. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/stylesheets/oauthLoginView.styl +0 -0
  657. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/templates/configView.pug +0 -0
  658. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/templates/oauthLoginView.pug +0 -0
  659. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/views/ConfigView.js +0 -0
  660. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/views/LoginView.js +0 -0
  661. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/views/OAuthLoginView.js +0 -0
  662. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/views/RegisterView.js +0 -0
  663. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/plugin_tests/__init__.py +0 -0
  664. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/setup.py +0 -0
  665. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/__init__.py +0 -0
  666. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/rest.py +0 -0
  667. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/main.js +0 -0
  668. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/package.json +0 -0
  669. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/stylesheets/readmeWidget.styl +0 -0
  670. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/templates/readmeWidget.pug +0 -0
  671. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/views/HierarchyWidget.js +0 -0
  672. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/plugin_tests/data/README.md +0 -0
  673. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/plugin_tests/readmeSpec.js +0 -0
  674. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/setup.py +0 -0
  675. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/__init__.py +0 -0
  676. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/rest.py +0 -0
  677. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/settings.py +0 -0
  678. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/main.js +0 -0
  679. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/package.json +0 -0
  680. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/routes.js +0 -0
  681. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/stylesheets/configView.styl +0 -0
  682. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/templates/configView.pug +0 -0
  683. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/views/ConfigView.js +0 -0
  684. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/setup.py +0 -0
  685. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/__init__.py +0 -0
  686. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/main.js +0 -0
  687. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/models/CollectionModel.js +0 -0
  688. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/package.json +0 -0
  689. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/routes.js +0 -0
  690. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/stylesheets/collectionInfoWidget.styl +0 -0
  691. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/stylesheets/editCollectionTermsWidget.styl +0 -0
  692. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/stylesheets/termsAcceptance.styl +0 -0
  693. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/templates/collectionInfoWidget.pug +0 -0
  694. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/templates/editCollectionTermsWidget.pug +0 -0
  695. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/templates/termsAcceptance.pug +0 -0
  696. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/views/CollectionInfoWidget.js +0 -0
  697. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/views/EditCollectionWidget.js +0 -0
  698. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/views/TermsAcceptanceView.js +0 -0
  699. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/plugin_tests/__init__.py +0 -0
  700. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/plugin_tests/termsSpec.js +0 -0
  701. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/plugin_tests/terms_test.py +0 -0
  702. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/setup.py +0 -0
  703. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/__init__.py +0 -0
  704. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/rest.py +0 -0
  705. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/utils.py +0 -0
  706. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/main.js +0 -0
  707. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/models/ThumbnailModel.js +0 -0
  708. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/package.json +0 -0
  709. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/createThumbnailView.styl +0 -0
  710. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/flowView.styl +0 -0
  711. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewDialog.pug +0 -0
  712. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewTargetDescription.pug +0 -0
  713. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/fileListWidgetCreateButton.pug +0 -0
  714. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/flowView.pug +0 -0
  715. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/itemView.pug +0 -0
  716. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/views/CreateThumbnailView.js +0 -0
  717. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/views/FileListWidget.js +0 -0
  718. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/views/FlowView.js +0 -0
  719. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/views/ItemView.js +0 -0
  720. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/worker.py +0 -0
  721. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/plugin_tests/__init__.py +0 -0
  722. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/plugin_tests/data/sample_dicom.dcm +0 -0
  723. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/plugin_tests/thumbnail_test.py +0 -0
  724. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/plugin_tests/thumbnailsSpec.js +0 -0
  725. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/setup.py +0 -0
  726. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/__init__.py +0 -0
  727. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/quota.py +0 -0
  728. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/settings.py +0 -0
  729. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/main.js +0 -0
  730. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/models/CollectionModel.js +0 -0
  731. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/models/UserModel.js +0 -0
  732. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/models/extendModel.js +0 -0
  733. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/package.json +0 -0
  734. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/routes.js +0 -0
  735. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/stylesheets/userQuota.styl +0 -0
  736. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/templates/collectionViewPoliciesMenu.pug +0 -0
  737. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/templates/configView.pug +0 -0
  738. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/templates/quotaPoliciesWidget.pug +0 -0
  739. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/templates/userViewPoliciesMenu.pug +0 -0
  740. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/utilities/Conversions.js +0 -0
  741. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/CollectionView.js +0 -0
  742. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/ConfigView.js +0 -0
  743. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/QuotaPoliciesWidget.js +0 -0
  744. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/UploadWidget.js +0 -0
  745. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/UserView.js +0 -0
  746. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/extendView.js +0 -0
  747. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/plugin_tests/__init__.py +0 -0
  748. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/plugin_tests/userQuotaSpec.js +0 -0
  749. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/plugin_tests/user_quota_test.py +0 -0
  750. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/setup.py +0 -0
  751. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/virtual_folders/girder_virtual_folders/__init__.py +0 -0
  752. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/virtual_folders/plugin_tests/__init__.py +0 -0
  753. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/virtual_folders/plugin_tests/virtual_folders_test.py +0 -0
  754. {girder-3.2.2.dev2 → girder-3.2.3}/plugins/virtual_folders/setup.py +0 -0
  755. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/LICENSE +0 -0
  756. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/MANIFEST.in +0 -0
  757. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/__init__.py +0 -0
  758. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/assertions.py +0 -0
  759. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/fixtures.py +0 -0
  760. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/plugin.py +0 -0
  761. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/plugin_registry.py +0 -0
  762. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/utils.py +0 -0
  763. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/web_client.py +0 -0
  764. {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/setup.py +0 -0
  765. {girder-3.2.2.dev2 → girder-3.2.3}/requirements-dev.txt +0 -0
  766. {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/README.rst +0 -0
  767. {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/migrate.py +0 -0
  768. {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/requirements.txt +0 -0
  769. {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/walk_girder.py +0 -0
  770. {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/walk_midas.py +0 -0
  771. {girder-3.2.2.dev2 → girder-3.2.3}/scripts/publicNames.py +0 -0
  772. {girder-3.2.2.dev2 → girder-3.2.3}/scripts/publicNames.txt +0 -0
  773. {girder-3.2.2.dev2 → girder-3.2.3}/scripts/test_names.sh +0 -0
  774. {girder-3.2.2.dev2 → girder-3.2.3}/setup.cfg +0 -0
  775. {girder-3.2.2.dev2 → girder-3.2.3}/setup.py +0 -0
  776. {girder-3.2.2.dev2 → girder-3.2.3}/tox.ini +0 -0
@@ -28,7 +28,7 @@ commands:
28
28
  name: Generate python environment checksum file
29
29
  command: ./girder/.circleci/generatePyEnvChecksum.sh > girder/py-env-checksum
30
30
  - restore_cache:
31
- key: venv-py3.8-{{ arch }}-{{ checksum "girder/py-env-checksum" }}
31
+ key: venv-py3.8-{{ arch }}-{{ checksum "girder/py-env-checksum" }}-3
32
32
  - run:
33
33
  name: Create virtual environment (if necessary)
34
34
  command: if [ ! -d girder_env ]; then python3 -m venv girder_env; fi
@@ -52,7 +52,7 @@ commands:
52
52
  - save_cache:
53
53
  paths:
54
54
  - girder_env
55
- key: venv-py3.8-{{ arch }}-{{ checksum "girder/py-env-checksum" }}
55
+ key: venv-py3.8-{{ arch }}-{{ checksum "girder/py-env-checksum" }}-3
56
56
 
57
57
  jobs:
58
58
  server-lint-test:
@@ -10,6 +10,7 @@ sphinx:
10
10
 
11
11
  python:
12
12
  install:
13
+ - requirements: docs/requirements-docs.txt
13
14
  - method: pip
14
15
  path: .
15
16
  - method: pip
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: girder
3
- Version: 3.2.2.dev2
3
+ Version: 3.2.3
4
4
  Summary: Web-based data management platform
5
5
  Home-page: https://girder.readthedocs.org
6
6
  Author: Kitware, Inc.
@@ -3,7 +3,7 @@ import pkg_resources
3
3
  import sphinx_rtd_theme
4
4
  from sphinx.domains.python import PythonDomain
5
5
 
6
- needs_sphinx = '1.6'
6
+ # needs_sphinx = '1.6'
7
7
 
8
8
  # Get package imports and version
9
9
  # The 'girder' and "girder_client" packages must be installed at this point
@@ -46,6 +46,7 @@ extensions = [
46
46
  'sphinx.ext.autodoc',
47
47
  'sphinx.ext.intersphinx',
48
48
  'sphinx.ext.viewcode',
49
+ 'sphinxcontrib.jquery',
49
50
  ]
50
51
 
51
52
  autodoc_mock_imports = list(_girder_imports)
@@ -146,12 +146,18 @@ separated list to the ``--blacklist`` arg ::
146
146
 
147
147
  girder-client upload 54b6d41a8926486c0cbca367 test_folder --blacklist .DS_Store
148
148
 
149
- .. note: The girder_client can upload to an S3 Assetstore when uploading to a Girder server
150
- that is version 1.3.0 or later.
149
+ .. note:: The girder_client can upload to an S3 Assetstore when uploading to a Girder server
150
+ that is version 1.3.0 or later.
151
151
 
152
152
  Download a hierarchy of data into a local folder
153
153
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
154
154
 
155
+ .. note:: When downloading files, Girder writes them temporarily under the operating system's
156
+ temporary directory before moving them to their final destination. If you need the
157
+ temporary files to be stored elsewhere, perhaps due to being on a different volume or
158
+ device, simply set the ``TMPDIR`` environment variable to the desired location before
159
+ invoking the download.
160
+
155
161
  Folder
156
162
  """"""
157
163
 
@@ -132,17 +132,21 @@ class Assetstore(Resource):
132
132
  .errorResponse('You are not an administrator.', 403)
133
133
  )
134
134
  def importData(self, assetstore, importPath, destinationId, destinationType, progress,
135
- leafFoldersAsItems, fileIncludeRegex, fileExcludeRegex):
135
+ leafFoldersAsItems, fileIncludeRegex, fileExcludeRegex, **kwargs):
136
136
  user = self.getCurrentUser()
137
137
  parent = ModelImporter.model(destinationType).load(
138
138
  destinationId, user=user, level=AccessType.ADMIN, exc=True)
139
139
 
140
+ # Capture any additional parameters passed to route
141
+ extraParams = kwargs.get('params', {})
142
+
140
143
  with ProgressContext(progress, user=user, title='Importing data') as ctx:
141
144
  return self._model.importData(
142
145
  assetstore, parent=parent, parentType=destinationType, params={
143
146
  'fileIncludeRegex': fileIncludeRegex,
144
147
  'fileExcludeRegex': fileExcludeRegex,
145
148
  'importPath': importPath,
149
+ **extraParams
146
150
  }, progress=ctx, user=user, leafFoldersAsItems=leafFoldersAsItems)
147
151
 
148
152
  @access.admin
@@ -1,3 +1,5 @@
1
+ #!/usrbin/env python3
2
+
1
3
  import errno
2
4
  import functools
3
5
  import hashlib
@@ -27,6 +29,10 @@ from girder.utility.model_importer import ModelImporter
27
29
  from girder.utility.server import configureServer
28
30
 
29
31
 
32
+ def _hashkey_first(funcname, *args, **kwargs):
33
+ return (funcname, args[1])
34
+
35
+
30
36
  class ServerFuse(fuse.Operations):
31
37
  """
32
38
  This class handles FUSE operations that are non-default. It exposes the
@@ -65,6 +71,15 @@ class ServerFuse(fuse.Operations):
65
71
  options = options or {}
66
72
  self.cache = cachetools.TTLCache(maxsize=10000, ttl=int(options.pop('stat_cache_ttl', 1)))
67
73
  self.diskcache = None
74
+ self._mount_stats = {
75
+ 'open': 0,
76
+ 'read': 0,
77
+ 'release': 0,
78
+ 'dir': 0,
79
+ 'bytesread': 0,
80
+ 'pathlookups': 0,
81
+ 'directpathchecks': 0,
82
+ }
68
83
  self._configure_disk_cache(options)
69
84
 
70
85
  def _configure_disk_cache(self, cacheopts):
@@ -96,6 +111,8 @@ class ServerFuse(fuse.Operations):
96
111
  for key in list((cacheopts or {}).keys()):
97
112
  if key.startswith('diskcache'):
98
113
  value = cacheopts.pop(key)
114
+ if str(value).strip().isdigit():
115
+ value = int(value)
99
116
  key = key[len('diskcache'):].lstrip('_')
100
117
  use = True if use is None else use
101
118
  if key:
@@ -106,7 +123,10 @@ class ServerFuse(fuse.Operations):
106
123
  chunk = int(options.pop('chunk', 128 * 1024))
107
124
  self.diskcache = {
108
125
  'chunk': chunk,
109
- 'cache': diskcache.Cache(**options)
126
+ 'cache': diskcache.Cache(**options),
127
+ 'hits': 0,
128
+ 'miss': 0,
129
+ 'bytesread': 0,
110
130
  }
111
131
 
112
132
  def __call__(self, op, path, *args, **kwargs):
@@ -136,7 +156,7 @@ class ServerFuse(fuse.Operations):
136
156
  logger.debug('<- %s (length %d) %r', op, len(ret), ret[:16])
137
157
 
138
158
  @cachetools.cachedmethod(lambda self: self.cache, key=functools.partial(
139
- cachetools.keys.hashkey, '_get_path'))
159
+ _hashkey_first, '_get_path'))
140
160
  def _get_path(self, path):
141
161
  """
142
162
  Given a fuse path, return the associated resource.
@@ -144,6 +164,7 @@ class ServerFuse(fuse.Operations):
144
164
  :param path: path within the fuse.
145
165
  :returns: a Girder resource dictionary.
146
166
  """
167
+ self._mount_stats['pathlookups'] += 1
147
168
  # If asked about a file in top level directory or the top directory,
148
169
  # return that it doesn't exist. Other methods should handle '',
149
170
  # '/user', and 'collection' before calling this method.
@@ -239,6 +260,20 @@ class ServerFuse(fuse.Operations):
239
260
  entries.append(self._name(file, 'file'))
240
261
  return entries
241
262
 
263
+ def _mount_stats_repr(self):
264
+ import json
265
+
266
+ curstats = self._mount_stats.copy()
267
+ curstats['openfiles'] = {}
268
+ for fh in self.openFiles:
269
+ try:
270
+ curstats['openfiles'][fh] = self.openFiles[fh]['path']
271
+ except Exception:
272
+ pass
273
+ if self.diskcache:
274
+ curstats['diskcache'] = {k: v for k, v in self.diskcache.items() if k != 'cache'}
275
+ return (json.dumps(curstats, indent=2) + '\n').encode()
276
+
242
277
  # We don't handle extended attributes or ioctl.
243
278
  getxattr = None
244
279
  listxattr = None
@@ -277,7 +312,7 @@ class ServerFuse(fuse.Operations):
277
312
  return 0
278
313
 
279
314
  @cachetools.cachedmethod(lambda self: self.cache, key=functools.partial(
280
- cachetools.keys.hashkey, 'getattr'))
315
+ _hashkey_first, 'getattr'))
281
316
  def getattr(self, path, fh=None):
282
317
  """
283
318
  Get the attributes dictionary of a path.
@@ -291,6 +326,13 @@ class ServerFuse(fuse.Operations):
291
326
  attr = self._defaultStat.copy()
292
327
  attr['st_mode'] = 0o500 | stat.S_IFDIR
293
328
  attr['st_size'] = 0
329
+ elif path.rstrip('/') == '/stats':
330
+ attr = self._defaultStat.copy()
331
+ attr['st_ino'] = -1
332
+ attr['st_nlink'] = 1
333
+ attr['st_ctime'] = attr['st_mtime'] = int(time.time() * 1e9)
334
+ attr['st_mode'] = 0o400 | stat.S_IFREG
335
+ attr['st_size'] = len(self._mount_stats_repr())
294
336
  else:
295
337
  resource = self._get_path(path)
296
338
  attr = self._stat(resource['document'], resource['model'])
@@ -311,10 +353,14 @@ class ServerFuse(fuse.Operations):
311
353
  :param fh: an open file handle.
312
354
  :returns: a block of up to <size> bytes.
313
355
  """
356
+ if path.rstrip('/') == '/stats':
357
+ data = self._mount_stats_repr()
358
+ return data[offset:offset + size]
314
359
  with self.openFilesLock:
315
360
  if fh not in self.openFiles:
316
361
  raise fuse.FuseOSError(errno.EBADF)
317
362
  info = self.openFiles[fh]
363
+ self._mount_stats['read'] += 1
318
364
  if self.diskcache and info.get('allowcache'):
319
365
  result = b''
320
366
  for idx in range(
@@ -325,6 +371,8 @@ class ServerFuse(fuse.Operations):
325
371
  key = '%s-%d-%d' % (info['hash'], idxoffset, idxlen)
326
372
  try:
327
373
  data = self.diskcache['cache'].get(key, None, read=True)
374
+ if data is not None:
375
+ self.diskcache['hits'] += 1
328
376
  except Exception:
329
377
  logger.exception('diskcache threw an exception in get')
330
378
  data = None
@@ -335,15 +383,19 @@ class ServerFuse(fuse.Operations):
335
383
  handle = info['handle']
336
384
  handle.seek(idxoffset)
337
385
  data = handle.read(idxlen)
386
+ self.diskcache['miss'] += 1
387
+ self.diskcache['bytesread'] += len(data)
338
388
  try:
339
389
  self.diskcache['cache'][key] = data
340
390
  except Exception:
341
391
  logger.exception('diskcache threw an exception in set')
392
+ if isinstance(data, bytes):
342
393
  result += data[max(0, offset - idxoffset):
343
394
  min(len(data), offset + size - idxoffset)]
344
395
  else:
345
396
  data.seek(max(0, offset - idxoffset))
346
397
  result += data.read(size - len(result))
398
+ self._mount_stats['bytesread'] += len(result)
347
399
  return result
348
400
  with info['lock']:
349
401
  if 'handle' not in info:
@@ -353,6 +405,7 @@ class ServerFuse(fuse.Operations):
353
405
  open(info['directpath'], 'rb'))
354
406
  handle = info['handle']
355
407
  handle.seek(offset)
408
+ self._mount_stats['bytesread'] += size
356
409
  return handle.read(size)
357
410
 
358
411
  def readdir(self, path, fh):
@@ -364,10 +417,11 @@ class ServerFuse(fuse.Operations):
364
417
  specified.
365
418
  :returns: a list of names. This always includes . and ..
366
419
  """
420
+ self._mount_stats['dir'] += 1
367
421
  path = path.rstrip('/')
368
422
  result = ['.', '..']
369
423
  if path == '':
370
- result.extend(['collection', 'user'])
424
+ result.extend(['collection', 'user', 'stats'])
371
425
  elif path in ('/user', '/collection'):
372
426
  model = path[1:]
373
427
  docList = ModelImporter.model(model).find({}, sort=None)
@@ -378,6 +432,16 @@ class ServerFuse(fuse.Operations):
378
432
  result.extend(self._list(resource['document'], resource['model']))
379
433
  return result
380
434
 
435
+ @cachetools.cachedmethod(lambda self: self.cache, key=functools.partial(
436
+ _hashkey_first, '_get_direct_path'))
437
+ def _get_direct_path(self, path, doc):
438
+ self._mount_stats['directpathchecks'] += 1
439
+ try:
440
+ directpath = File().getAssetstoreAdapter(doc).getLocalFilePath(doc)
441
+ except FilePathException:
442
+ directpath = None
443
+ return directpath
444
+
381
445
  def open(self, path, flags):
382
446
  """
383
447
  Open a path and return a descriptor.
@@ -387,6 +451,10 @@ class ServerFuse(fuse.Operations):
387
451
  read only.
388
452
  :returns: a file descriptor.
389
453
  """
454
+ if path.rstrip('/') == '/stats':
455
+ fh = self.nextFH
456
+ self.nextFH += 1
457
+ return fh
390
458
  resource = self._get_path(path)
391
459
  if resource['model'] != 'file':
392
460
  return super().open(path, flags)
@@ -406,18 +474,15 @@ class ServerFuse(fuse.Operations):
406
474
  'allowcache': True,
407
475
  'lock': threading.Lock(),
408
476
  }
409
- try:
410
- directpath = File().getAssetstoreAdapter(
411
- resource['document']).getLocalFilePath(resource['document'])
412
- if directpath:
413
- info['allowcache'] = False
414
- info['directpath'] = directpath
415
- except FilePathException:
416
- pass
477
+ directpath = self._get_direct_path(path, resource['document'])
478
+ if directpath:
479
+ info['allowcache'] = False
480
+ info['directpath'] = directpath
417
481
  with self.openFilesLock:
418
482
  fh = self.nextFH
419
483
  self.nextFH += 1
420
484
  self.openFiles[fh] = info
485
+ self._mount_stats['open'] += 1
421
486
  return fh
422
487
 
423
488
  def release(self, path, fh):
@@ -435,6 +500,7 @@ class ServerFuse(fuse.Operations):
435
500
  self.openFiles[fh]['handle'].close()
436
501
  del self.openFiles[fh]['handle']
437
502
  del self.openFiles[fh]
503
+ self._mount_stats['release'] += 1
438
504
  else:
439
505
  return super().release(path, fh)
440
506
  return 0
@@ -65,6 +65,8 @@ class FileHandle:
65
65
  raise GirderException('Read exceeds maximum allowed size.')
66
66
  data = io.BytesIO()
67
67
  length = 0
68
+ if self._stream is None:
69
+ self._stream = self._adapter.downloadFile(self._file, offset=self._pos, headers=False)()
68
70
  for chunk in itertools.chain(self._prev, self._stream):
69
71
  chunkLen = len(chunk)
70
72
 
@@ -103,7 +105,7 @@ class FileHandle:
103
105
 
104
106
  if self._pos != oldPos:
105
107
  self._prev = []
106
- self._stream = self._adapter.downloadFile(self._file, offset=self._pos, headers=False)()
108
+ self._stream = None
107
109
 
108
110
  def close(self):
109
111
  pass
@@ -2395,6 +2395,34 @@
2395
2395
  "search": [
2396
2396
  "box-brand"
2397
2397
  ]
2398
+ },
2399
+ {
2400
+ "uid": "7c44ac8cfcf6634d1860502cadc32118",
2401
+ "css": "paint-roller",
2402
+ "code": 59785,
2403
+ "src": "custom_icons",
2404
+ "selected": true,
2405
+ "svg": {
2406
+ "path": "M66.7 16.7H866.7C879.9 16.7 892.6 21.9 902 31.3 911.4 40.7 916.7 53.4 916.7 66.7V316.7C916.7 329.9 911.4 342.6 902 352 892.6 361.4 879.9 366.7 866.7 366.7H66.7C53.4 366.7 40.7 361.4 31.3 352 21.9 342.6 16.7 329.9 16.7 316.7V66.7C16.7 53.4 21.9 40.7 31.3 31.3 40.7 21.9 53.4 16.7 66.7 16.7ZM166.7 466.7H466.7C479.9 466.7 492.6 471.9 502 481.3 511.4 490.7 516.7 503.4 516.7 516.7V666.7H566.7V966.7H366.7V666.7H416.7V566.7H116.7C103.4 566.7 90.7 561.4 81.3 552 71.9 542.6 66.7 529.9 66.7 516.7V416.7H166.7V466.7ZM753.3 553.3L841.7 464.9 930.1 553.3C947.5 570.7 959.4 593 964.3 617.3 969.1 641.5 966.6 666.6 957.1 689.5 947.7 712.3 931.7 731.8 911.1 745.6 890.6 759.3 866.4 766.6 841.7 766.6 816.9 766.6 792.8 759.3 772.2 745.6 751.7 731.8 735.6 712.3 726.2 689.5 716.7 666.6 714.2 641.5 719.1 617.3 723.9 593 735.8 570.7 753.3 553.3Z",
2407
+ "width": 1000
2408
+ },
2409
+ "search": [
2410
+ "vector"
2411
+ ]
2412
+ },
2413
+ {
2414
+ "uid": "69ed7eb4532a03beb8749e7aeba580b0",
2415
+ "css": "merge-rows",
2416
+ "code": 59786,
2417
+ "src": "custom_icons",
2418
+ "selected": true,
2419
+ "svg": {
2420
+ "path": "M541.7 770.8V687.5H604.9C612.3 687.5 616 678.5 610.8 673.3L505.9 568.4C502.6 565.1 497.4 565.1 494.1 568.4L389.2 673.3C384 678.5 387.7 687.5 395.1 687.5H458.3V770.8H541.7ZM541.7 229.2V319.4H604.9C612.3 319.4 616 328.4 610.8 333.7L505.9 438.5C502.6 441.8 497.4 441.8 494.1 438.5L389.2 333.7C384 328.4 387.7 319.4 395.1 319.4H458.3V229.2H541.7ZM875 833.3C875 856.3 856.3 875 833.3 875H166.7C143.7 875 125 856.3 125 833.3V166.7C125 143.7 143.7 125 166.7 125H833.3C856.3 125 875 143.7 875 166.7V833.3ZM791.7 208.3H208.3V791.7H791.7V208.3ZM727.8 546.2C732.4 546.2 736.1 542.4 736.1 537.8V471.2C736.1 466.6 732.4 462.8 727.8 462.8H272.2C267.6 462.8 263.9 466.6 263.9 471.2V537.8C263.9 542.4 267.6 546.2 272.2 546.2H727.8Z",
2421
+ "width": 1000
2422
+ },
2423
+ "search": [
2424
+ "merge-rows"
2425
+ ]
2398
2426
  }
2399
2427
  ]
2400
2428
  }
@@ -231,4 +231,5 @@ var AssetstoresView = View.extend({
231
231
  }
232
232
  });
233
233
 
234
+ export { assetstoreImportViewMap };
234
235
  export default AssetstoresView;
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: girder
3
- Version: 3.2.2.dev2
3
+ Version: 3.2.3
4
4
  Summary: Web-based data management platform
5
5
  Home-page: https://girder.readthedocs.org
6
6
  Author: Kitware, Inc.
@@ -1,5 +1,6 @@
1
1
  import cherrypy
2
2
  import datetime
3
+ from urllib.parse import urlparse, parse_qs, urlencode, urlunparse
3
4
 
4
5
  from girder import events
5
6
  from girder.constants import AccessType
@@ -134,10 +135,20 @@ class OAuth(Resource):
134
135
  if event.defaultPrevented:
135
136
  raise cherrypy.HTTPRedirect(redirect)
136
137
 
137
- girderToken = self.sendAuthTokenCookie(user)
138
- try:
139
- redirect = redirect.format(girderToken=str(girderToken['_id']))
140
- except KeyError:
141
- pass # in case there's another {} that's not handled by format
142
-
143
- raise cherrypy.HTTPRedirect(redirect)
138
+ token = str(Token().createToken(user)['_id'])
139
+
140
+ # Set `girderToken` in the query params of the redirect URL
141
+ parsed = urlparse(redirect)
142
+ query_params = parse_qs(parsed.query)
143
+ query_params['girderToken'] = token
144
+ encoded_query_params = urlencode(query_params)
145
+ updated_redirect = urlunparse((
146
+ parsed.scheme,
147
+ parsed.netloc,
148
+ parsed.path,
149
+ parsed.params,
150
+ encoded_query_params,
151
+ parsed.fragment,
152
+ ))
153
+
154
+ raise cherrypy.HTTPRedirect(updated_redirect)
@@ -0,0 +1,21 @@
1
+ import { setCurrentToken } from '@girder/core/auth';
2
+
3
+ import './routes';
4
+
5
+ // Extends and overrides API
6
+ import './views/LoginView';
7
+ import './views/RegisterView';
8
+
9
+ // If the current URL contains a `girderToken` query parameter, set the current token to its value
10
+ const girderToken = new URLSearchParams(window.location.search).get('girderToken');
11
+
12
+ if (girderToken) {
13
+ // This means we have been redirected from a successful OAuth login.
14
+ // Save the token, and delete the query parameter from the URL.
15
+ window.localStorage.setItem('girderToken', girderToken);
16
+ setCurrentToken(girderToken);
17
+
18
+ const queryParams = new URLSearchParams(window.location.search);
19
+ queryParams.delete('girderToken');
20
+ window.location.search = queryParams.toString();
21
+ }
@@ -135,7 +135,7 @@ class OauthTest(base.TestCase):
135
135
  }
136
136
  return callbackParams
137
137
 
138
- redirect = 'http://localhost/#foo/bar?token={girderToken}'
138
+ redirect = 'http://localhost/#foo/bar'
139
139
 
140
140
  class EventHandler:
141
141
  def __init__(self):
@@ -167,7 +167,7 @@ class OauthTest(base.TestCase):
167
167
  resp = self.request(
168
168
  '/oauth/%s/callback' % providerInfo['id'], params=params, isJson=False)
169
169
  self.assertStatus(resp, 303)
170
- self.assertTrue('girderToken' not in resp.cookie)
170
+ self.assertTrue('girderToken' not in resp.headers['Location'])
171
171
  self.assertEqual(event_handler.state, 'been in "before"')
172
172
 
173
173
  params = _getCallbackParams(providerInfo, redirect)
@@ -183,51 +183,9 @@ class OauthTest(base.TestCase):
183
183
  resp = self.request(
184
184
  '/oauth/%s/callback' % providerInfo['id'], params=params, isJson=False)
185
185
  self.assertStatus(resp, 303)
186
- self.assertTrue('girderToken' not in resp.cookie)
186
+ self.assertTrue('girderToken' not in resp.headers['Location'])
187
187
  self.assertEqual(event_handler.state, 'been in "after"')
188
188
 
189
- def _testOauthTokenAsParam(self, providerInfo):
190
- self.accountType = 'existing'
191
-
192
- def _getCallbackParams(providerInfo, redirect):
193
- resp = self.request('/oauth/provider', params={
194
- 'redirect': redirect,
195
- 'list': True
196
- })
197
- self.assertStatusOk(resp)
198
- providerResp = resp.json[0]
199
- resp = requests.get(providerResp['url'], allow_redirects=False)
200
- self.assertEqual(resp.status_code, 302)
201
- callbackLoc = urllib.parse.urlparse(resp.headers['location'])
202
- self.assertEqual(
203
- callbackLoc.path, r'/api/v1/oauth/%s/callback' % providerInfo['id'])
204
- callbackLocQuery = urllib.parse.parse_qs(callbackLoc.query)
205
- self.assertNotHasKeys(callbackLocQuery, ('error',))
206
- callbackParams = {
207
- key: val[0] for key, val in callbackLocQuery.items()
208
- }
209
- return callbackParams
210
-
211
- redirect = 'http://localhost/#foo/bar?token={girderToken}'
212
- params = _getCallbackParams(providerInfo, redirect)
213
-
214
- resp = self.request(
215
- '/oauth/%s/callback' % providerInfo['id'], params=params, isJson=False)
216
- self.assertStatus(resp, 303)
217
- self.assertTrue('girderToken' in resp.cookie)
218
- self.assertEqual(
219
- resp.headers['Location'],
220
- redirect.format(girderToken=resp.cookie['girderToken'].value))
221
-
222
- redirect = 'http://localhost/#foo/bar?token={foobar}'
223
- params = _getCallbackParams(providerInfo, redirect)
224
-
225
- resp = self.request(
226
- '/oauth/%s/callback' % providerInfo['id'], params=params, isJson=False)
227
- self.assertStatus(resp, 303)
228
- self.assertTrue('girderToken' in resp.cookie)
229
- self.assertEqual(resp.headers['Location'], redirect)
230
-
231
189
  def _testOauth(self, providerInfo):
232
190
  # Close registration to start off, and simulate a new user
233
191
  self._testSettings(providerInfo)
@@ -349,10 +307,11 @@ class OauthTest(base.TestCase):
349
307
  resp = self.request(
350
308
  '/oauth/%s/callback' % providerInfo['id'], params=params, isJson=False)
351
309
  self.assertStatus(resp, 303)
352
- self.assertEqual(resp.headers['Location'], 'http://localhost/#foo/bar')
353
- self.assertTrue('girderToken' in resp.cookie)
310
+ expr = re.compile(r'^http://localhost/\?girderToken=(\w+)#foo/bar$')
311
+ self.assertRegex(resp.headers['Location'], expr)
354
312
 
355
- resp = self.request('/user/me', token=resp.cookie['girderToken'].value)
313
+ girderToken = expr.match(resp.headers['Location']).group(1)
314
+ resp = self.request('/user/me', token=girderToken)
356
315
  user = resp.json
357
316
  self.assertStatusOk(resp)
358
317
  self.assertEqual(
@@ -1001,7 +960,6 @@ class OauthTest(base.TestCase):
1001
960
  self.mockOtherRequest
1002
961
  ):
1003
962
  self._testOauth(providerInfo)
1004
- self._testOauthTokenAsParam(providerInfo)
1005
963
  self._testOauthEventHandling(providerInfo)
1006
964
 
1007
965
  def testLinkedinOauth(self): # noqa
@@ -1,5 +0,0 @@
1
- import './routes';
2
-
3
- // Extends and overrides API
4
- import './views/LoginView';
5
- import './views/RegisterView';
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes