<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to patches</title><link href="https://sourceforge.net/p/exuserfolder/patches/" rel="alternate"/><link href="https://sourceforge.net/p/exuserfolder/patches/feed.atom" rel="self"/><id>https://sourceforge.net/p/exuserfolder/patches/</id><updated>2007-11-18T00:46:22Z</updated><subtitle>Recent changes to patches</subtitle><entry><title>understand encryption of /etc/passwd and /etc/shadow</title><link href="https://sourceforge.net/p/exuserfolder/patches/29/" rel="alternate"/><published>2007-11-18T00:46:22Z</published><updated>2007-11-18T00:46:22Z</updated><author><name>Anonymous Earthling</name><uri>https://sourceforge.net/u/earthling/</uri></author><id>https://sourceforge.net2cdc60c22fb8f244f5d85a6a1b2ea91def4b6e8b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;You have to hard-code the place of the file containing the passwords into the code, but hey, then you can use you linux users&amp;amp;paswords in zope!&lt;/p&gt;
&lt;p&gt;This will add a crypto source, so we have to integrate it like this:&lt;/p&gt;
&lt;p&gt;diff exUserFolder/CryptoSources/__init__.py&lt;br /&gt;
4a5&lt;br /&gt;
+ import pass_pwd&lt;/p&gt;
&lt;p&gt;The attached file is the new crypto source which understands traditional linux crypt and md5 style password hashes. Save it as exUserFolder/CryptoSources/pass_pwd.py&lt;/p&gt;
&lt;p&gt;configuration area in the file:&lt;br /&gt;
PASSWORDFILES = ['/opt/zope-instances/foo/exUsers/etcUsers']&lt;br /&gt;
DEBUG = 0&lt;br /&gt;
DEBUG_LOGFILE = '/tmp/pwdtest.log'&lt;/p&gt;
&lt;p&gt;cp /etc/shadow $INSTANCE_HOME/exUsers/etcUsers&lt;/p&gt;
&lt;p&gt;(re)install the Product with the changes&lt;/p&gt;
&lt;p&gt;add an exUserFolder to a subfolder somewhere which does not already have an acl_users folder&lt;br /&gt;
Answer to the dialog:&lt;br /&gt;
"Authentication Source": "File Based Authentication Source"&lt;br /&gt;
all other Sources: "Null * Source"&lt;br /&gt;
"Default Password Hashing Method": "Linux style: crypt or md5"&lt;/p&gt;
&lt;p&gt;click NEXT -&amp;gt; Password File: etcUsers , Default Role: etcUser&lt;br /&gt;
click NEXT -&amp;gt; click "Add" a few times till finished&lt;/p&gt;
&lt;p&gt;tested with:&lt;/p&gt;
&lt;p&gt;gentoo Base System version 1.12.6&lt;br /&gt;
Zope 2.9.4&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>MD5 Hex CryptoPlugin for PHP/MySQL/etc compatibility</title><link href="https://sourceforge.net/p/exuserfolder/patches/28/" rel="alternate"/><published>2005-05-11T10:01:11Z</published><updated>2005-05-11T10:01:11Z</updated><author><name>Sam Johnston</name><uri>https://sourceforge.net/u/samj/</uri></author><id>https://sourceforge.net9aa41f4cfb10727bd6d63d595f52d2922ab97488</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;MySQL, PHP and md5sum (among others) generate hex&lt;br /&gt;
representations of MD5 sums which are not compatible&lt;br /&gt;
with the existing md5 implementation in pass_md5.py.&lt;br /&gt;
This patch adds a new 'MD5 (Hex)' crypto plugin based&lt;br /&gt;
on the existing one which allows users to generate new&lt;br /&gt;
and authenticate against existing hex md5 hashes,&lt;br /&gt;
thereby avoiding having to reissue passwords to&lt;br /&gt;
existing users.&lt;/p&gt;
&lt;p&gt;This should also allow for migrations from other&lt;br /&gt;
products, for example from phpBB to CMFBoard.&lt;/p&gt;
&lt;p&gt;diff pass_md5.py pass_md5hex.py&lt;br /&gt;
32,33c32,33&lt;br /&gt;
&amp;lt;       digest = digest.digest()&lt;br /&gt;
&amp;lt;       secret = string.strip(base64.encodestring(digest))&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       digest = digest.hexdigest()&lt;br /&gt;
&amp;gt;       secret = string.strip(digest)&lt;br /&gt;
43,44c43,44&lt;br /&gt;
&amp;lt; MD5Plugin1=CryptoPluginRegister('MD51', 'MD5', 'MD5&lt;br /&gt;
Password Only', cryptPassword)&lt;br /&gt;
&amp;lt; exUserFolder.cryptoSources['MD51']=MD5Plugin1&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; MD5Plugin1=CryptoPluginRegister('MD5X1', 'MD5X', 'MD5&lt;br /&gt;
(Hex) Password Only', cryptPassword)&lt;br /&gt;
&amp;gt; exUserFolder.cryptoSources['MD5X1']=MD5Plugin1&lt;br /&gt;
46,47c46,47&lt;br /&gt;
&amp;lt; MD5Plugin2=CryptoPluginRegister('MD52', 'MD5', 'MD5&lt;br /&gt;
Username + Password', cryptPassword2)&lt;br /&gt;
&amp;lt; exUserFolder.cryptoSources['MD52']=MD5Plugin2&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; MD5Plugin2=CryptoPluginRegister('MD5X2', 'MD5X', 'MD5&lt;br /&gt;
(Hex) Username + Password', cryptPassword2)&lt;br /&gt;
&amp;gt; exUserFolder.cryptoSources['MD5X2']=MD5Plugin2&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>patch for [1164195] typo in zodbPopSource.py</title><link href="https://sourceforge.net/p/exuserfolder/patches/27/" rel="alternate"/><published>2005-04-06T04:23:18Z</published><updated>2005-04-06T04:23:18Z</updated><author><name>Donovan Baarda</name><uri>https://sourceforge.net/u/abo/</uri></author><id>https://sourceforge.net319ffc0fa75f9f5160441ca5fc03421fb3fd1a1f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;See the bug report at [1164195] typo in zodbPopSource.py.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Patch to allow domain for cookie</title><link href="https://sourceforge.net/p/exuserfolder/patches/26/" rel="alternate"/><published>2005-03-11T10:10:28Z</published><updated>2005-03-11T10:10:28Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net20b30b14458e2cb9a440ca2cc0c59b26654f6f49</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This patch intended for cookie based authentication.&lt;br /&gt;
It adds "cookie_domain" property for exUserFolder. This&lt;br /&gt;
property determines domain for all setCookie /&lt;br /&gt;
expireCookie operation in exUserFolder. The main goal&lt;br /&gt;
is to make single authentication for  many subdomains&lt;br /&gt;
in one domain. For example, we have a domains&lt;br /&gt;
a.domain.com, b.domain.com, c.domain.com etc served by&lt;br /&gt;
single exUserFolder and want user logged in&lt;br /&gt;
a.domain.com became logged in other sites. In this case&lt;br /&gt;
we can fill cookie_domain property with ".domain.com"&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>EXUF and portal_memberdata wrapper</title><link href="https://sourceforge.net/p/exuserfolder/patches/25/" rel="alternate"/><published>2004-03-01T18:45:53Z</published><updated>2004-03-01T18:45:53Z</updated><author><name>Mikhail Terekhov</name><uri>https://sourceforge.net/u/miketm/</uri></author><id>https://sourceforge.net70ec4c4cc4470dadf8811dbc992760c83ceb93a5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;XUFUser.getId() tries obtain Id from self.propSource first&lt;br /&gt;
which causes infinite reqursion because CMF/Plone &lt;br /&gt;
property sources need object Id to fetch object's &lt;br /&gt;
properties so they call getId() which tries to get Id&lt;br /&gt;
from the self.propSource and so on and so on.&lt;br /&gt;
In general it is not a good idea to keep object's Id&lt;br /&gt;
separately from the object itself. Confusion seems to &lt;br /&gt;
come from the fact that User.id is not a unix user id or&lt;br /&gt;
windows user id or database user key or whatever. &lt;br /&gt;
User.id is an internal Zope identifier which should be &lt;br /&gt;
unique within parent's context and should be always&lt;br /&gt;
available. Proposed patch simply removes check in &lt;br /&gt;
self.propSource and makes XUFUser.getId() just return&lt;br /&gt;
self.name. Probably using username as an id for&lt;br /&gt;
XUFUser objects is not an unique or a best solution in&lt;br /&gt;
general, but at least it is consistent with other acl_user&lt;br /&gt;
implementations.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>changing roles with etcAuthSource</title><link href="https://sourceforge.net/p/exuserfolder/patches/24/" rel="alternate"/><published>2004-01-15T22:07:41Z</published><updated>2004-01-15T22:07:41Z</updated><author><name>Deepak Giridharagopal</name><uri>https://sourceforge.net/u/dgiri101/</uri></author><id>https://sourceforge.net9dca4c66003e371b73c5ff466ba96ada2d03a283</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I don't know if this is the same bug as with Patch&lt;br /&gt;
#626934, but that particular patch entry didn't have&lt;br /&gt;
and comments or attached files.&lt;/p&gt;
&lt;p&gt;The offending code (from etcAuthSource.py):         &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;232:    if roles and self.default_role:             &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;233:       roles=roles.append(self.default_role)    &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;234:    elif self.default_role:                     &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;235:       roles=[self.default_role,]               &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;236:    else:                                       &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;237:       roles=[]                                 &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Line 233 is the problem. 'roles.append' will always&lt;br /&gt;
return None, it should just be used in-place.&lt;br /&gt;
Currently, if you have any roles manually defined for a&lt;br /&gt;
user, then line 233 will just set 'roles' to 'None'.&lt;br /&gt;
Zope expects a sequence, not 'None'.                &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;I've attached a small patch.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Simple backwards compatibility patch</title><link href="https://sourceforge.net/p/exuserfolder/patches/23/" rel="alternate"/><published>2003-08-25T02:52:38Z</published><updated>2003-08-25T02:52:38Z</updated><author><name>Chris Beaven</name><uri>https://sourceforge.net/u/smileychris/</uri></author><id>https://sourceforge.net5278fd4ad815d2a705f292be340e85a3d77ea36a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I was updating my exUserFolder version and came across&lt;br /&gt;
a problem when accessing an older exUserFolder&lt;/p&gt;
&lt;p&gt;Fixed by changing line 922 of v0.20.0 from:&lt;/p&gt;
&lt;p&gt;if self.currentMembershipSource and&lt;br /&gt;
self.currentMembershipSource.loginPage:&lt;/p&gt;
&lt;p&gt;to:&lt;/p&gt;
&lt;p&gt;if getattr(self, 'currentMembershipSource', None) and&lt;br /&gt;
self.currentMembershipSource.loginPage:&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Crypting passwords with crypt, md5, sha in pgAuthSourceAlt</title><link href="https://sourceforge.net/p/exuserfolder/patches/22/" rel="alternate"/><published>2003-02-24T21:17:16Z</published><updated>2003-02-24T21:17:16Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net5df13270318abb9452f7b4e8dbd871ad1e78a47e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This is a patch for pgAuthSourceAlt to allow&lt;br /&gt;
configureable crypting method (crypt, md5, sha) for&lt;br /&gt;
storing passwords.&lt;/p&gt;
&lt;p&gt;It uses the usual method '{SHA}ae34cb...' strings to&lt;br /&gt;
store secret.&lt;/p&gt;
&lt;p&gt;If you apply this patch, and have an existent&lt;br /&gt;
acl_users, you can call the method 'upgrade' on the&lt;br /&gt;
'pgAuthSourceAlt' instance, and convert passwords!&lt;/p&gt;
&lt;p&gt;viktor at neotek dot hu&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>fix for use in root folder</title><link href="https://sourceforge.net/p/exuserfolder/patches/21/" rel="alternate"/><published>2003-02-21T10:45:58Z</published><updated>2003-02-21T10:45:58Z</updated><author><name>Toby Dickenson</name><uri>https://sourceforge.net/u/htrd/</uri></author><id>https://sourceforge.net2b37a2cdd523a7fc5902fee215f1b89458081bb7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Im sure Ive submitted this one previously, but&lt;br /&gt;
sourceforge thinks not. &lt;/p&gt;
&lt;p&gt;This patch fixes gross brokenness when used as a user&lt;br /&gt;
folder in the root folder.&lt;/p&gt;
&lt;p&gt;The XUF documentation recommends against doing this on&lt;br /&gt;
principal. I disagree with that principal ;-) This&lt;br /&gt;
patch works for me.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>a typo that prevent changing roles using etcAuthSource</title><link href="https://sourceforge.net/p/exuserfolder/patches/20/" rel="alternate"/><published>2002-10-22T15:52:27Z</published><updated>2002-10-22T15:52:27Z</updated><author><name>Toby Dickenson</name><uri>https://sourceforge.net/u/htrd/</uri></author><id>https://sourceforge.net2e777e5c80ecae7aa409937f2532e654de5f0b56</id><summary type="html"/></entry></feed>