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.
- {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/config.yml +2 -2
- {girder-3.2.2.dev2 → girder-3.2.3}/.readthedocs.yml +1 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/PKG-INFO +1 -1
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/conf.py +2 -1
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/python-client.rst +8 -2
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/assetstore.py +5 -1
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/mount.py +78 -12
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/abstract_assetstore_adapter.py +3 -1
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/fontello.config.json +28 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/AssetstoresView.js +1 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/PKG-INFO +1 -1
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/rest.py +18 -7
- girder-3.2.3/plugins/oauth/girder_oauth/web_client/main.js +21 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/plugin_tests/oauth_test.py +7 -49
- girder-3.2.2.dev2/plugins/oauth/girder_oauth/web_client/main.js +0 -5
- {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/Dockerfile +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/create_ansible_subtree.sh +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/generatePyEnvChecksum.sh +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/publish_npm.sh +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/.circleci/publish_pypi.sh +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/.codecov.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/.dockerignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/.editorconfig +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/CHANGELOG.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/CMakeLists.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/CONTRIBUTING.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/Dockerfile +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/LICENSE +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/MANIFEST.in +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/README.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/Vagrantfile +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/clients/python/README.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/clients/python/girder_client/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/clients/python/girder_client/cli.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/clients/python/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/.yamllint +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/LICENSE +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/README.md +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/defaults/main.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/handlers/main.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/library/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/library/README.md +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/library/girder.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/meta/main.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/converge.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test1.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test2.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test3.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/molecule.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/prepare.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/requirements.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_access.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_apikey.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_assetstore.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_files.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_hierarchy.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_resources.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_setting.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/test_user.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/converge.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/molecule.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/prepare.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/pytest.ini +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/default/tests/test_default.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/tasks/main.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/tasks/nodejs.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/templates/daemon/girder.service.j2 +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/deployment-template/hosts.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/deployment-template/playbook.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/deployment-template/provision.sh +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/deployment-template/requirements.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/vagrant/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/vagrant/ansible.cfg +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/vagrant/vagrant-playbook.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/devops/vagrant/vagrant-requirements.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docker-compose.yml +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/admin-docs.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/api-docs.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/build-docs.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/changelog.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/configuration.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/dependencies.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/deployment-alternatives.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/deployment.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/dev-installation.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/developer-cookbook.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/developer-docs.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/development.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/external-web-clients.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/favicon.ico +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/images/dicom-viewer.png +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/index.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/license.png +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/migration-guide.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/mount.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/plugin-development.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/plugins.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/requirements-docs.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/security.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/sftp.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/user-docs.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/docs/user-guide.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/access.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/api_docs.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/api_main.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/describe.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/docs.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/filter_logging.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/sftp.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/api_key.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/collection.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/file.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/folder.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/group.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/item.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/notification.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/resource.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/system.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/token.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/api/v1/user.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/build.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/serve.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/sftpd.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/cli/shell.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/conf/girder.dist.cfg +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/constants.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/events.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/exceptions.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/_footer.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/_header.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/accountApproval.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/accountApproved.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/emailVerification.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/groupInvite.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/mail_templates/temporaryAccess.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/api_key.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/assetstore.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/collection.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/file.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/folder.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/group.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/item.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/model_base.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/notification.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/setting.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/token.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/upload.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/models/user.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/plugin.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/_cache.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/_hash_state.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/acl_mixin.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/assetstore_utilities.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/config.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/error.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/filesystem_assetstore_adapter.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/gridfs_assetstore_adapter.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/mail_utils.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/model_importer.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/path.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/progress.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/s3_assetstore_adapter.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/search.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/server.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/setting_utilities.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/system.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/webroot.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/webroot.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/utility/ziputil.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/Gruntfile.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/.npmignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/README.md +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/package-lock.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/eslint-config/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/.npmignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/Gruntfile.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/README.md +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/package-lock.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/fontello/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/build.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/swagger.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/test.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/webpack.config.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/webpack.paths.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/grunt_tasks/webpack.plugins.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/package.json.template +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/.npmignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/README.md +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/package-lock.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/pug-lint-config/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/assets/Girder_Mark.png +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/auth.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/ApiKeyCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/AssetstoreCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/Collection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/CollectionCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/FileCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/FolderCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/GroupCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/ItemCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/UserCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/collections/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/constants.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/dialog.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/events.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/misc.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/AccessControlledModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/ApiKeyModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/AssetstoreModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/CollectionCreationPolicyModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/CollectionModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/FileModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/FolderModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/GroupModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/ItemModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/MetadataMixin.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/Model.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/UserModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/models/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/pluginUtils.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/rest.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/router.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/apidocs/apidocs.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/adminConsole.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/assetstores.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/collectionList.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/collectionPage.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/frontPage.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/groupList.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/groupPage.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/itemPage.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/plugins.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/searchResultsList.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/systemConfig.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/userAccount.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/userList.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/body/userPage.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/footer.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/global.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/globalNav.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/header.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/headerUser.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/layout.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/layoutVars.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/loading.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/layout/progressArea.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/accessWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/browserWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/hierarchyWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/markdownWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/metadataWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/searchFieldWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/taskProgress.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/timelineWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/uploadWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/stylesheets/widgets/userOtpManagementWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/adminConsole.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/assetstores.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/collectionList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/collectionPage.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/filesystemImport.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/frontPage.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/groupList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/groupPage.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/itemPage.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/plugins.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/s3Import.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/searchResults.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/searchResultsType.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/systemConfiguration.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/userAccount.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/userList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/body/userPage.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/alert.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layout.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutFooter.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutGlobalNav.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutHeader.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutHeaderUser.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/layoutProgressArea.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/loginDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/registerDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/layout/resetPasswordDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/accessEditor.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/accessEditorMixins.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/accessEditorNonModal.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/accessEntry.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/apiKeyList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/browserWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/checkedActionsMenu.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/collectionInfoDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/confirmDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/dateTimeRangeWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/dateTimeWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editApiKeyWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editAssetstoreWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editCollectionWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editFileWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editFolderWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editGroupWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/editItemWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/fileInfoDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/fileList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/folderInfoDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/folderList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupAdminList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupInviteDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupInviteList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupMemberList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/groupModList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/hierarchyBreadcrumb.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/hierarchyPaginated.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/hierarchyWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/itemBreadcrumb.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/itemList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/jsonMetadatumEditWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/jsonMetadatumView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/loadingAnimation.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/markdownWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/metadataWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/metadatumEditWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/metadatumView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/newAssetstore.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/paginateWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/pluginConfigBreadcrumb.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/rootSelectorWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/searchField.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/searchHelp.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/searchModeSelect.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/searchResults.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/sortCollectionWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/taskProgress.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/timeline.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/uploadWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/uploadWidgetMixins.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/uploadWidgetNonModal.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/userOtpBegin.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/userOtpDisable.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/templates/widgets/userOtpEnable.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/EventStream.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/PluginUtils.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/S3UploadHandler.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/jquery/girderEnable.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/utilities/jquery/girderModal.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/version.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/App.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/View.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/AdminView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/CollectionView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/CollectionsView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/FilesystemImportView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/FolderView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/FrontPageView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/GroupView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/GroupsView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/ItemView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/PluginsView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/S3ImportView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/SearchResultsView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/SystemConfigurationView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/UserAccountView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/UserView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/UsersView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/body/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/FooterView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/GlobalNavView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/HeaderUserView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/HeaderView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/LoginView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/ProgressListView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/RegisterView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/ResetPasswordView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/layout/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/AccessWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/ApiKeyListWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/BrowserWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/CheckedMenuWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/CollectionInfoWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/DateTimeRangeWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/DateTimeWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditApiKeyWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditAssetstoreWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditCollectionWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditFileWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditFolderWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditGroupWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/EditItemWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/FileInfoWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/FileListWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/FolderInfoWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/FolderListWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/GroupAdminsWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/GroupInvitesWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/GroupMembersWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/GroupModsWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/HierarchyWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/ItemBreadcrumbWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/ItemListWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/LoadingAnimation.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/MarkdownWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/MetadataWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/NewAssetstoreWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/PaginateWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/PluginConfigBreadcrumbWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/RootSelectorWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/SearchFieldWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/SearchPaginateWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/SortCollectionWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/TaskProgressWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/TimelineWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/UploadWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/UserOtpManagementWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/src/views/widgets/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/static/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/static/built/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/static/girder-swagger.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/static/img/Girder_Favicon.png +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/fake.jpg +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/lib/jasmine-1.3.1/ConsoleReporter.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/lib/jasmine-1.3.1/MIT.LICENSE.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.css +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/specRunner.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testEnv.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testFile.csv +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testFile.tsv +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testFile.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testFile2 +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder/web_client/test/testUtils.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/SOURCES.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/dependency_links.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/entry_points.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/not-zip-safe +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/requires.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/girder.egg-info/top_level.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/package-lock.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/.gitignore +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/audit_logs/girder_audit_logs/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/audit_logs/girder_audit_logs/cleanup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/audit_logs/girder_audit_logs/report.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/audit_logs/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/constants.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/mail_templates/authorized_upload.uploadFinished.mako +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizeUpload.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizedUpload.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizeUpload.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizedUpload.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/folderActions.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizeUploadView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizedUploadView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/plugin_tests/authorizedUploadSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/plugin_tests/upload_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/authorized_upload/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/girder_autojoin/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/plugin_tests/autojoinSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/plugin_tests/autojoin_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/autojoin/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/event_helper.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomItem.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomSliceMetadata.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomItem.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomSliceMetadata.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/parseDicomItem.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/views/DicomView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/girder_dicom_viewer/web_client/webpack.helper.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/data/000000.dcm.sha512 +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/data/000001.dcm.sha512 +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/data/000002.dcm.sha512 +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/data/000003.dcm.sha512 +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/plugin_tests/dicom_viewer_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/dicom_viewer/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/girder_download_statistics/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/plugin_tests/download_statistics_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/plugin_tests/files/txt1.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/plugin_tests/files/txt2.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/download_statistics/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/lib/backbone.analytics.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/girder_google_analytics/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/plugin_tests/google_analytics_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/google_analytics/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/models/UserModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/girder_gravatar/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/plugin_tests/gravatar_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/gravatar/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/stylesheets/hashsumDownloadFileInfoWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/config.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/hashsumDownloadFileInfoWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/girder_hashsum_download/web_client/views/FileInfoWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/plugin_tests/hashsumSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/plugin_tests/hashsum_download_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/hashsum_download/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/constants.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/girder_homepage/web_client/views/FrontPageView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/plugin_tests/homepageSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/plugin_tests/homepage_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/homepage/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/templates/itemLicenseWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/templates/selectLicenseWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/EditItemWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/HierarchyWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemLicenseWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/SelectLicenseWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/girder_item_licenses/web_client/views/UploadWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/plugin_tests/itemLicensesSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/plugin_tests/item_licenses_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/item_licenses/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/constants.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/job_rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/models/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/models/job.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/JobStatus.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/collections/JobCollection.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/collections/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/models/JobModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/models/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/stylesheets/jobDetailsWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/stylesheets/jobListWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/adminViewMenuItem.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/headerUserViewMenu.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxContent.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxMenu.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobDetailsWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobList.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobListWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/templates/jobsGraphWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/AdminView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/CheckBoxMenu.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/HeaderUserView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/JobDetailsWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/JobGraphWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/JobListWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/index.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/timeChartConfig.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/girder_jobs/web_client/views/timingHistoryChartConfig.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/plugin_tests/jobsSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/plugin_tests/jobs_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/plugin_tests/local_job_impl.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/jobs/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/templates/editServerMixin.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/templates/newServerTemplate.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/girder_ldap/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/plugin_tests/ldap_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/ldap/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/base.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/bitbucket.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/box.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/github.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/globus.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/google.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/linkedin.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/providers/microsoft.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/stylesheets/oauthLoginView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/templates/oauthLoginView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/views/LoginView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/views/OAuthLoginView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/girder_oauth/web_client/views/RegisterView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/oauth/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/stylesheets/readmeWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/templates/readmeWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/girder_readme/web_client/views/HierarchyWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/plugin_tests/data/README.md +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/plugin_tests/readmeSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/readme/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/stylesheets/configView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/girder_sentry/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/sentry/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/models/CollectionModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/stylesheets/collectionInfoWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/stylesheets/editCollectionTermsWidget.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/stylesheets/termsAcceptance.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/templates/collectionInfoWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/templates/editCollectionTermsWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/templates/termsAcceptance.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/views/CollectionInfoWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/views/EditCollectionWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/girder_terms/web_client/views/TermsAcceptanceView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/plugin_tests/termsSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/plugin_tests/terms_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/terms/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/rest.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/utils.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/models/ThumbnailModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/createThumbnailView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/flowView.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewDialog.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewTargetDescription.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/fileListWidgetCreateButton.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/flowView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/templates/itemView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/views/CreateThumbnailView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/views/FileListWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/views/FlowView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/web_client/views/ItemView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/girder_thumbnails/worker.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/plugin_tests/data/sample_dicom.dcm +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/plugin_tests/thumbnail_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/plugin_tests/thumbnailsSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/thumbnails/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/quota.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/settings.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/main.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/models/CollectionModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/models/UserModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/models/extendModel.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/package.json +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/routes.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/stylesheets/userQuota.styl +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/templates/collectionViewPoliciesMenu.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/templates/configView.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/templates/quotaPoliciesWidget.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/templates/userViewPoliciesMenu.pug +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/utilities/Conversions.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/CollectionView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/ConfigView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/QuotaPoliciesWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/UploadWidget.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/UserView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/girder_user_quota/web_client/views/extendView.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/plugin_tests/userQuotaSpec.js +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/plugin_tests/user_quota_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/user_quota/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/virtual_folders/girder_virtual_folders/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/virtual_folders/plugin_tests/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/virtual_folders/plugin_tests/virtual_folders_test.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/plugins/virtual_folders/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/LICENSE +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/MANIFEST.in +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/__init__.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/assertions.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/fixtures.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/plugin.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/plugin_registry.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/utils.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/pytest_girder/web_client.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/pytest_girder/setup.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/requirements-dev.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/README.rst +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/migrate.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/requirements.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/walk_girder.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/scripts/midas/walk_midas.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/scripts/publicNames.py +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/scripts/publicNames.txt +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/scripts/test_names.sh +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/setup.cfg +0 -0
- {girder-3.2.2.dev2 → girder-3.2.3}/setup.py +0 -0
- {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:
|
|
@@ -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
|
|
150
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
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 =
|
|
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
|
}
|
|
@@ -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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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
|
-
|
|
353
|
-
self.
|
|
310
|
+
expr = re.compile(r'^http://localhost/\?girderToken=(\w+)#foo/bar$')
|
|
311
|
+
self.assertRegex(resp.headers['Location'], expr)
|
|
354
312
|
|
|
355
|
-
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/converge.yml
RENAMED
|
File without changes
|
{girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test1.txt
RENAMED
|
File without changes
|
{girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test2.txt
RENAMED
|
File without changes
|
{girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/data/test3.txt
RENAMED
|
File without changes
|
{girder-3.2.2.dev2 → girder-3.2.3}/devops/ansible-role-girder/molecule/ansible-module/molecule.yml
RENAMED
|
File without changes
|