{ "info": { "author": "Tom Gross", "author_email": "itconsense@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.1", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Plone :: 5.1", "Framework :: Zope2", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "=============================\nAutoUserMakerPASPlugin Readme\n=============================\n\n\n.. image:: https://travis-ci.org/collective/Products.AutoUserMakerPASPlugin.png\n :target: https://travis-ci.org/collective/Products.AutoUserMakerPASPlugin\n\n.. image:: https://coveralls.io/repos/github/collective/Products.AutoUserMakerPASPlugin/badge.svg?branch=master\n :target: https://coveralls.io/github/collective/Products.AutoUserMakerPASPlugin?branch=master\n\n\nAutomatically generate members on login in Plone.\n\n\nChange history\n**************\n\n2.1.1 (2017-02-01)\n==================\n\n- Documentation RST fix\n [tomgross]\n\n2.1 (2017-02-01)\n================\n\n- Don't fail, if config properties are set as raw attributes\n [davidjb]\n\n- Update default buildout to Plone 5.0\n [tomgross]\n\n- Support periodic user properties updates\n [sebasgo]\n\n- Exclude user creation and update from plone.protect's CSRF protection\n [sebasgo]\n\n- Test on Plone 5.1\n [tomgross]\n\n2.0 (2016-01-14)\n================\n\n- Added challenge header and replacement pattern from WSA\n [tomgross]\n\n- Plone 4.1 - 5.0 compatibility\n [tomgross]\n\n- Ported tests to plone.app.testing\n [tomgross]\n\n- Allow other default roles than Member\n [Sebastian Gottfried]\n\n\n1.1 (2014-11-06)\n================\n\n- Remove triggering of UserLoggedInEvent (shouldn't be done in PAS plugin)\n [gweis]\n\n\n1.0 (2014-02-26)\n================\n\n- Let PAS decide where to store user properties. Allows e.g. Membrane\n to store properties on the user object itself. [gweis]\n- Make update of users's properties optional. [gweis]\n\n\n0.9 (2014-02-04)\n================\n\n- Move the password generation function to be an instance method.\n This allows for the potential to override this function and performance\n actions using information drawn from the plugin, request etc.\n [davidjb]\n- Update a user's properties when they authenticate. This\n handles the situation where a user's details may change (such as name,\n email address, etc) upon next authentication.\n [davidjb]\n- Allow other PAS plugins to handle credentials by calling\n ``updateCredentials`` when authenticating. This allows for existing\n session or cookie plugins (implementing ``ICredentialsUpdatePlugin``)\n to take over handling a user's authentication.\n [davidjb]\n- Ensure tests pass on Plone 4.1+.\n [davidjb]\n\n\n0.8b1 (2010-11-04)\n==================\n\n - Factored out setting of local roles to ShibbolethPermissions\n - Trigger UserLoggedInEvent\n - Added challenge-plugin\n\n0.8a1 (2010-04-06)\n==================\n\n - authzMappings needs to be a persistent list all the time\n [tom_gross]\n\n - copied from old-style product 0.7\n [tom_gross]\n\nDetailed Documentation\n**********************\n\nOverview\n========\n\nAccept Apache based authentication in Zope and create Plone users.\n\n*AutoUserMakerPasPlugin* is a PAS plugin developed from apachepas, which allows\nZope to delegate authentication concerns to Apache, and that automatically\ncreates users as Apache lets them through. Using *AutoUserMakerPasPlugin*, you\ncan configure your Plone site so any user known to your LDAP, Kerberos,\nShibboleth, or Cosign (a.k.a. WebAccess) system--or indeed any other system\nwhich has an Apache authentication module--can transparently log in using his\nenterprise-wide credentials.\n\nIf you want only a few select users to be able to log into your site, don't\nuse Auto User Maker; stick to just apachepas, and create your few users\nmanually. If, however, you want anyone with enterprise credentials to be\nable to authenticate, read on.\n\n\nRequirements\n============\n\n* Plone 4.1 to 5.1 are tested and supported\n\n* I test this with Shibboleth, currently 2.0 service provider.\n\nInstallation\n============\n\n1. Unzip the AutoUserMakerPASPlugin.zip file in $INSTANCE_HOME/Products.\n\n2. Restart Zope.\n\n3. Install the plugin:\n\n If you're using Plone...\n\n 1. Go to your-plone-site -> site setup -> Add/Remove Products,\n and install AutoUserMakerPASPlugin.\n\n If you're not using Plone...\n\n 1. In the Zope Management Interface, navigate to your-plone-site ->\n acl_users.\n\n 2. Add an Auto User Maker to the folder.\n\n 3. Navigate to your-plone-site -> acl_users -> plugins ->\n Authentication Plugins.\n\n 2. Go to the Activate tab of your newly created Auth User Make instance,\n and turn on Authentication and Extraction.\n\n4. Set up the required Apache directives. For example:\n\n::\n\n # Some Linux distributions (e.g., Debian Etch and Red Hat Enterprise\n # Linux AS Release 4) have default settings which prevent the header\n # rewrites below from working. Fix that:\n \n Order deny,allow\n Allow from all\n \n\n RewriteEngine On\n\n # Grab the remote user as environment variable.\n # (This RewriteRule doesn't actually rewrite anything URL-wise.)\n RewriteCond %{LA-U:REMOTE_USER} (.+)\n RewriteRule .* - [E=RU:%1]\n\n # Put the username into a request header:\n RequestHeader set X_REMOTE_USER %{RU}e\n\n # For Shibboleth SP 2.0, you must also set HTTP headers, if you want\n # account data populated.\n\t\t#RequestHeader set SHIB_PERSON_COMMONNAME %{displayName}e\n #RequestHeader set SHIB_INETORGPERSON_MAIL %{mail}e\n #RequestHeader set SHIB_ORGPERSON_LOCALITY %{l}e\n #RequestHeader set SHIB_ORGPERSON_STATE %{st}e\n #RequestHeader set SHIB_ORGPERSON_C %{c}e\n\n\t\t# Don't send shib stuff to plone\n\t\tRewriteCond %{REQUEST_URI} !^/(shibboleth-(sp|idp)|Shibboleth.sso|SAML)\n # Do the typical VirtualHostMonster rewrite:\n RewriteRule ^/port_8080(.*) http://localhost:8080/VirtualHostBase/http//localhost:80/VirtualHostRoot/_vh_port_8080/$1 [L,P]\n\nI (Alan Brenner) used the following on a virtual interface on my Apache 2.2 and\nShibboleth 1.3 development system:\n\n::\n\n Listen 192.168.191.1:80\n \n ServerName alan.ithaka.org\n DocumentRoot /usr/local/apache-httpd-2.2.4/htdocs\n ProxyRequests Off\n ProxyPass /server-status !\n ProxyPass /server-info !\n ProxyPass /index.php !\n ProxyPass /Shibboleth.sso !\n ProxyPass /shibboleth-sp !\n ProxyPass /shibboleth-idp !\n ProxyPass /php !\n ProxyPass / http://127.0.0.1:8253/VirtualHostBase/http/alan.ithaka.org:80/test/VirtualHostRoot/\n\n LoadModule mod_shib /usr/local/shibboleth-sp-1.3/libexec/mod_shib_22.so\n ShibSchemaDir /usr/local/shibboleth-sp-1.3/share/xml/shibboleth\n ShibConfig /usr/local/shibboleth-sp-1.3/etc/shibboleth/shibboleth.xml\n ShibURLScheme http\n \n AuthType shibboleth\n ShibRedirectToSSL 443\n # An index.php like:\n #shib test\n # is helpful to validate security, and see what values shib is setting.\n \n \n\n \n AuthType Basic\n AuthName Test\n AuthUserFile /usr/local/apache-httpd-2.2.4/conf/users\n require valid-user\n \n\n \n LoadModule jk_module modules/mod_jk.so\n JkShmFile /usr/local/apache-httpd-2.2.4/logs/jk-runtime-status\n JkWorkersFile /usr/local/apache-tomcat-5.5.23/conf/jk/workers.properties\n JkLogFile /var/log/httpd/mod_jk.log\n \n JkLogLevel emerg\n JkMount /shibboleth-idp/* ajp13\n JkMount /jsp-examples ajp13\n JkMount /jsp-examples/* ajp13\n JkMount /tomcat-docs ajp13\n JkMount /tomcat-docs/* ajp13\n JkMount /admin ajp13\n JkMount /admin/* ajp13\n\n Listen 443\n \n DocumentRoot \"/usr/local/apache-httpd-2.2.4/htdocs\"\n ServerName alan.ithaka.org\n ServerAdmin alan.brenner@ithaka.org\n ErrorLog /usr/local/apache-httpd-2.2.4/logs/error_log.443\n TransferLog /usr/local/apache-httpd-2.2.4/logs/access_log.443\n SSLEngine on\n SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL\n SSLCertificateFile /usr/local/shibboleth-sp-1.3/etc/shibboleth/idp.crt\n SSLCertificateKeyFile /usr/local/shibboleth-sp-1.3/etc/shibboleth/idp.key\n \n SSLOptions +StdEnvVars\n \n \n Order deny,allow\n Allow from all\n \n RewriteEngine On\n RewriteCond %{LA-U:REMOTE_USER} (.+)\n RewriteRule .* - [E=RW_RU:%1]\n RequestHeader set X_REMOTE_USER %{RW_RU}e\n RewriteCond %{REQUEST_URI} !^/(shibboleth-(sp|idp)|Shibboleth.sso|SAML|WAYF|server-(status|info)|index.php|php)\n RewriteRule ^/(.*) http://127.0.0.1:8253/VirtualHostBase/https/alan.ithaka.org:443/test/VirtualHostRoot/$1 [L,P]\n \n AuthType shibboleth\n ShibRequireSession Off\n require shibboleth\n \n \n\n Listen 8443\n \n ErrorLog /usr/local/apache-httpd-2.2.4/logs/error_log.8443\n TransferLog /usr/local/apache-httpd-2.2.4/logs/access_log.8443\n SSLEngine on\n SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP\n SSLVerifyClient optional_no_ca\n SSLVerifyDepth 10\n SSLOptions +StdEnvVars +ExportCertData\n SSLCertificateFile /usr/local/shibboleth-sp-1.3/etc/shibboleth/idp.crt\n SSLCertificateKeyFile /usr/local/shibboleth-sp-1.3/etc/shibboleth/idp.key\n ProxyRequests Off\n \n\nI use this for Apache 2.2 and Shibboleth 2.0 (and please see the page at\nhttps://spaces.internet2.edu/display/SHIB2/IdPSPLocalTestInstall for a more\ncomplete set of instructions on the Shibboleth side):\n\n::\n\n Include /etc/shibboleth/apache22.config\n\n \n ServerName alan.ithaka.org\n ServerAdmin alan.brenner@ithaka.org\n DocumentRoot /Library/WebServer/Documents\n ProxyRequests Off\n ProxyPass /server-status !\n ProxyPass /server-info !\n ProxyPass /index.php !\n ProxyPass / http://127.0.0.1:8253/VirtualHostBase/http/alan.ithaka.org:80/test/VirtualHostRoot/\n \n\n Listen 443\n \n DocumentRoot \"/Library/WebServer/Documents\"\n ServerName alan.ithaka.org:443\n ServerAdmin alan.brenner@ithaka.org\n ErrorLog \"/var/log/apache2/error_log\"\n TransferLog \"/var/log/apache2/access_log\"\n SSLEngine on\n SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL\n SSLCertificateFile \"/etc/apache2/server.crt\"\n SSLCertificateKeyFile \"/etc/apache2/server.key\"\n \n SSLOptions +StdEnvVars\n \n \n SSLOptions +StdEnvVars\n \n BrowserMatch \".*MSIE.*\" \\\n nokeepalive ssl-unclean-shutdown \\\n downgrade-1.0 force-response-1.0\n CustomLog \"/var/log/apache2/ssl_request_log\" \\\n \"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \\\"%r\\\" %b\"\n \n Order deny,allow\n Allow from all\n \n RewriteEngine On\n RewriteCond %{LA-U:REMOTE_USER} (.+)\n RewriteRule .* - [E=RW_RU:%1]\n RequestHeader set X_REMOTE_USER %{RW_RU}e\n RequestHeader set SHIB_PERSON_COMMONNAME %{displayName}e\n RequestHeader set SHIB_INETORGPERSON_MAIL %{mail}e\n RequestHeader set SHIB_ORGPERSON_LOCALITY %{l}e\n RequestHeader set SHIB_ORGPERSON_STATE %{st}e\n RequestHeader set SHIB_ORGPERSON_C %{c}e\n RewriteCond %{REQUEST_URI} !^/(shibboleth-sp|server-(status|info)|index.php|secure)\n RewriteRule ^/(.*) http://127.0.0.1:8253/VirtualHostBase/https/alan.ithaka.org:443/test/VirtualHostRoot/$1 [L,P]\n \n AuthType shibboleth\n ShibRequireSession On\n require shibboleth\n \n \n \n \n DocumentRoot \"/Library/WebServer/Documents\"\n ServerName alanidp.ithaka.org:443\n ServerAdmin alan.brenner@ithaka.org\n ErrorLog \"/var/log/apache2/error_idp_log\"\n TransferLog \"/var/log/apache2/access_idp_log\"\n SSLEngine on\n SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL\n SSLCertificateFile \"/etc/apache2/server_idp.crt\"\n SSLCertificateKeyFile \"/etc/apache2/server_idp.key\"\n \n SSLOptions +StdEnvVars\n \n \n SSLOptions +StdEnvVars\n \n BrowserMatch \".*MSIE.*\" \\\n nokeepalive ssl-unclean-shutdown \\\n downgrade-1.0 force-response-1.0\n \n SSLOptions +StdEnvVars\n \n \n Order deny,allow\n Allow from all\n \n ProxyPass /idp/ ajp://127.0.0.1:8009/idp/\n \n AuthType Basic\n AuthName \"IdPTest\"\n AuthUserfile /etc/apache2/pass\n require valid-user\n \n \n\nNotice for Shibboleth 2, I've had to use a different host for the Identity\nProvider.\n\nShibboleth Changes\n------------------\n\nFor Shibboleth 1.3, change the MemorySessionCache in the Service Provider's\nshibboleth.xml file to increase values to avoid sessions expiring in 30 minutes:\n\n ::\n\n \n\nHere, you increase the cleanupInterval and defaultLifetime values in seconds.\n\nFor Shibboleth 2.0, change the LoginHandler entry in the Identity Provider's\nhandler.xml to increase values to avoid sessions expiring in 30 minutes:\n\n ::\n\n \n\nHere, you add the authenticationDuration value in minutes.\n\nConfiguration\n=============\n\nUsernames with domain names\n---------------------------\n\nIf your Apache setup includes a domain in the username, AutoUserMakerPASPlugin\nwill, by default, strip it off. For example, if Apache sets X_REMOTE_USER to\n\"fred@example.com\", AutoUserMakerPASPlugin will shorten it to \"fred\". If you\ndon't want AutoUserMakerPASPlugin to do this (for example, if you are using a\ncross-domain authorization system like Shibboleth where this could cause name\ncollisions)...\n\n1. In the ZMI, click your *AutoUserMakerPASPlugin* instance in acl_users.\n\n2. Click the \"Do not strip domain names from usernames\".\n\n3. Click Save.\n\nThis can also be set up to strip names from specific DNS domains, by selecting\nthe 'Strip domain names from all usernames in the domain(s) below' button, and\nentering domains in the input box below that button, then click Save.\n\nHeader Mapping\n--------------\n\nIf you are using Shibboleth (http://shibboleth.internet2.edu/), additional data\ncan be sent from Apache to Zope. Configure the values that the Shibboleth\nservice provider is making available in the field for each input type, then\nclick Save. This will allow AutoUserMakerPASPlugin to populate the basic Plone\nuser attributes (full name, email, etc). Multiple environment variables can be\nsearched for each attribute by listing them on individual lines. The first value\nfound will be used.\n\nAssigning Plone Roles, Groups or an Existing User\n-------------------------------------------------\n\nAutoUserMakerPASPlugin can map incoming attributes, to Plone roles, groups and\nalready existing users.\n\n1. Add environment variables to check in the entry box near the bottom of the\n Options tab, and click save.\n\n2. Click the AuthZ tab, and in the Add Role Mapping section, enter regular\n expressions that should select incoming users. You don't need to fill in all\n of the Source fields, but at least one should be. Blank fields match, so\n if no pattern is given, then all new users will be assigned as specified in\n the roles, user and group(s) columns.\n\n3. Either select roles, an existing user, or one or more groups to assign to\n users that match the given pattern(s).\n\n4. Click Save.\n\nOnce a mapping exists, there will be an area to edit the existing mapping,\nincluding deleting it.\n\nAllowing Users to Share Content\n-------------------------------\n\nIf *ShibbolethPermissions* is installed, adding items in the last 2 input fields\nin the configuration tab sets up the values users can use to share content with.\nEnter environment variable names of the same sort used for assigning roles or\nsetting user properties in the left input box. Enter labels in the right box\nthat users will see for the variable on the same line in the left box, and click\nsave.\n\nAdmitting only certain users\n----------------------------\n\nIf you want to admit only a subset of the users that Apache recognizes...\n\n1. In the ZMI, click your *ApacheAuthPluginHandler* instance.\n\n2. Click the Properties tab.\n\n3. Put \"Member\" in the required_roles field.\n\n4. Click Save Changes.\n\n5. Use the *Users and Groups Administration* page in Plone to create\n the users you want to admit.\n\nUsers you have not added will still be able to satisfy Apache's login\nprompt but will not be recognized by Plone.\n\n\nDesign Rationale (technical and only for the curious)\n=====================================================\n\nUser Creation\n-------------\n\nWe chose to actually create and store users in the PAS rather than just\npretending they exist. If we had only pretended, then the users wouldn't\nshow up when you go to 'your-plone-site/prefs_users_overview' and click\n\"Show all\". (Writing a 'IUserEnumerationPlugin' is impossible in our\ncase, as the enterprise user store is none of Zope's concern; Apache is\nthe only thing that talks to the user store.)\n\nRole Assignment\n---------------\n\nThere were two ways we could have gone about giving users the Member\nrole (which is what Plone requires in order to treat them as first-class\ncitizens): (1) an 'IRolesPlugin' which would simply pretend everyone has\nthe Member role or (2) actually assigning each user the Member role and\nstoring the assignment in the ZODB (or, more correctly, wherever an\nactive 'IRoleAssignerPlugin' chooses to store it). We chose (2) so you\ncan uninstall Auto Member Maker later and have your users keep working.\nIf we had done (1), you would need to manually assign the Member role to\neach of your users if you ever stopped using Auto Member Maker.\n\n\nTesting\n=======\n\nTo run the *AutoUserMakerPASPlugin* tests, use the standard Zope testrunner:\n\n $INSTANCE_HOME/bin/zopectl test -s Products.AutoUserMakerPASPlugin\n\n\nCredits\n=======\n\napachepas\n---------\nOriginally developed by Rocky Burt (rocky AT serverzen.com) on behalf of\n\"Zest Software\":http://zestsoftware.nl.\n\nVersion 1.1 by Erik Rose of \"WebLion\", http://weblion.psu.edu/.\n\nAutoMemberMakerPASPlugin\n------------------------\n\nThis product was developed by Erik Rose, of the WebLion group at Penn State\nUniversity.\n\nAutoUserMakerPASPlugin\n----------------------\n\nAlan Brenner, of Ithaka Harbors, Inc., under the direction of the Research in\nInformation Technology program of the Andrew W. Mellon Foundaton, combined\napachepas and AutoMemberMaker, and added user, group and role mappings, and\nsupport for user level sharing. I've added tests as well. I'd like to thank Paul\nYuergens of psych.ucla.edu, Li Cheng of pku.edu.cn and Yuri of alfa.it\nfor testing, and Alex Man of seas.ucla.edu for tracking down the Shibboleth 1.3\nsession expiration cause.\n\n\nContributors\n************\n\n- Tom Gross, Author\n- David Beitey, Contributor\n- Sebastian Gottfried, Contributor", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/Products.AutoUserMakerPASPlugin/", "keywords": "plone authentication shibboleth pas security", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "Products.AutoUserMakerPASPlugin", "package_url": "https://pypi.org/project/Products.AutoUserMakerPASPlugin/", "platform": "", "project_url": "https://pypi.org/project/Products.AutoUserMakerPASPlugin/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/Products.AutoUserMakerPASPlugin/" }, "release_url": "https://pypi.org/project/Products.AutoUserMakerPASPlugin/2.1.1/", "requires_dist": null, "requires_python": "", "summary": "Automatically create PAS users when authentication in Plone", "version": "2.1.1" }, "last_serial": 2611263, "releases": { "0.8a1": [ { "comment_text": "", "digests": { "md5": "46a35ea9e764c44262ea541b99eb76d8", "sha256": "9efcf2c8fac95fd2b2fdd6e196f4023f22686f11d6a377993603dcd13ef1d4cf" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-0.8a1.zip", "has_sig": false, "md5_digest": "46a35ea9e764c44262ea541b99eb76d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56097, "upload_time": "2010-04-06T12:02:47", "url": "https://files.pythonhosted.org/packages/e9/dc/e885da9d2be41ee7e8742931beb69174301f3d6cfd1ef7075303984afb29/Products.AutoUserMakerPASPlugin-0.8a1.zip" } ], "0.8b1": [ { "comment_text": "", "digests": { "md5": "09c0bcf994e87a2adaec874de3ebbaec", "sha256": "a3e6f6330fb8c8bab36b4b47a6593d90d20259f8b64b7e40dc35bca1c03cca8a" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-0.8b1.tar.gz", "has_sig": false, "md5_digest": "09c0bcf994e87a2adaec874de3ebbaec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38464, "upload_time": "2010-11-04T16:41:11", "url": "https://files.pythonhosted.org/packages/d0/63/5149f8a22e0a44327e9908fe06a88d21bdbf761d63cb161fb58c4b7986c3/Products.AutoUserMakerPASPlugin-0.8b1.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "3c2bf7d1e09681e4d4459f886203c91b", "sha256": "ed869b50f0178aa6f9368f24ff698b346769f6c1c63a693893db61ba08e2740c" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-0.9.zip", "has_sig": false, "md5_digest": "3c2bf7d1e09681e4d4459f886203c91b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64481, "upload_time": "2014-02-04T00:28:45", "url": "https://files.pythonhosted.org/packages/b2/37/5def1f0bd1809e138b82dca49dd8f4d64034f3ad6f72610edae77eee52eb/Products.AutoUserMakerPASPlugin-0.9.zip" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "851e2f29f628116810228a99533a6d2c", "sha256": "ad8c0509135bda6baf209ecd4e9eca6bc83306520baa71de9a762e9875dcc0e2" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-1.0.zip", "has_sig": false, "md5_digest": "851e2f29f628116810228a99533a6d2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65222, "upload_time": "2014-02-26T06:45:11", "url": "https://files.pythonhosted.org/packages/1b/1b/1127952f7ff0916730c3ffd255a3141d691d49eae6c6022f7573dba607dc/Products.AutoUserMakerPASPlugin-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "c20e8b853e7e711e783dac22aba06d3f", "sha256": "066943dc0ea7d26b8fddfa9ab3258db65bbd25801eb1290f4b8f0c32a7b3b99b" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-1.1.zip", "has_sig": false, "md5_digest": "c20e8b853e7e711e783dac22aba06d3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65289, "upload_time": "2014-11-06T00:27:39", "url": "https://files.pythonhosted.org/packages/bf/7d/e7e15830bdc22920855f3b3fcd3faa9f23adc83f7f0115add0ffd4588021/Products.AutoUserMakerPASPlugin-1.1.zip" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "074fdfb12666fbaf24787f4a3331dc9b", "sha256": "a5b9c5b56a77ae90dbb91bda7af912943bc425d37f217c2cbe3885668404b6e0" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-2.0.zip", "has_sig": false, "md5_digest": "074fdfb12666fbaf24787f4a3331dc9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80267, "upload_time": "2016-01-14T10:35:07", "url": "https://files.pythonhosted.org/packages/a1/27/a734e9ff4cb726d8745d6142c39c5c1cd8b48015c81eecfd4e8a37b439d9/Products.AutoUserMakerPASPlugin-2.0.zip" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "08879e14cf6f9aa617e1280a9b54ced8", "sha256": "d205e20b721e24a3ebc40478cb5819fb452a06b6165be11fa370e4f9e791e7e3" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-2.1.tar.gz", "has_sig": false, "md5_digest": "08879e14cf6f9aa617e1280a9b54ced8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56617, "upload_time": "2017-02-01T10:50:48", "url": "https://files.pythonhosted.org/packages/a3/1f/bcff0fadcc5775498c132b01fe3643e002deb7ad1b9963cc20be48f1c1d3/Products.AutoUserMakerPASPlugin-2.1.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "fc6483d86e20c3b59a3ff0a6620dcbff", "sha256": "dcb17f7444df39252e5c9c3a055c8ab5e30dda095d8e813d88b5d4dbf92e027f" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-2.1.1.tar.gz", "has_sig": false, "md5_digest": "fc6483d86e20c3b59a3ff0a6620dcbff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56544, "upload_time": "2017-02-01T11:00:27", "url": "https://files.pythonhosted.org/packages/b0/2d/ed3e94fbdd1f33a406638d938e4bf2ff08353682d35446cecad48c5c6921/Products.AutoUserMakerPASPlugin-2.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fc6483d86e20c3b59a3ff0a6620dcbff", "sha256": "dcb17f7444df39252e5c9c3a055c8ab5e30dda095d8e813d88b5d4dbf92e027f" }, "downloads": -1, "filename": "Products.AutoUserMakerPASPlugin-2.1.1.tar.gz", "has_sig": false, "md5_digest": "fc6483d86e20c3b59a3ff0a6620dcbff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56544, "upload_time": "2017-02-01T11:00:27", "url": "https://files.pythonhosted.org/packages/b0/2d/ed3e94fbdd1f33a406638d938e4bf2ff08353682d35446cecad48c5c6921/Products.AutoUserMakerPASPlugin-2.1.1.tar.gz" } ] }