annotate patches/20020205.alternate_auth @ 3068:c4e76c84f43d

another fix to indexargs
author Richard Jones <richard@users.sourceforge.net>
date Wed, 05 Jan 2005 21:57:46 +0000
parents 741b203969d2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
802
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 From daniel_clark@us.ibm.com Wed Feb 6 04:27:15 2002
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 X-Sieve: cmu-sieve 2.0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 Return-Path: <roundup-devel-admin@lists.sourceforge.net>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 Received: (from uucp@localhost)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 by crown.off.ekorp.com (8.9.3/8.9.3) id RAA12435
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 for rjones@ekit-inc.com; Tue, 5 Feb 2002 17:30:24 GMT
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 Received: from usw-sf-fw2.sourceforge.net(216.136.171.252), claiming to be "usw-sf-list1.sourceforge.net"
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 via SMTP by mx3.ekorp.com, id smtpdAAALJaWqy; Tue Feb 5 17:30:22 2002
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 Received: from localhost ([127.0.0.1] helo=usw-sf-list1.sourceforge.net)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 by usw-sf-list1.sourceforge.net with esmtp (Exim 3.31-VA-mm2 #1 (Debian))
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 id 16Y9Q6-0002kj-00; Tue, 05 Feb 2002 09:30:14 -0800
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 Received: from lotus2.lotus.com ([129.42.241.42])
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 by usw-sf-list1.sourceforge.net with esmtp (Exim 3.31-VA-mm2 #1 (Debian))
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 id 16Y9Ps-0002ee-00
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 for <roundup-devel@lists.sourceforge.net>; Tue, 05 Feb 2002 09:30:00 -0800
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 Received: from internet2.lotus.com (internet2 [172.16.131.236])
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 by lotus2.lotus.com (8.12.1/8.12.1) with ESMTP id g15HUnTQ013140
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 for <roundup-devel@lists.sourceforge.net>; Tue, 5 Feb 2002 12:30:54 -0500 (EST)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 Received: from a3mail.lotus.com (a3mail.lotus.com [9.95.5.66])
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 by internet2.lotus.com (8.12.1/8.12.1) with ESMTP id g15HTHS0005917
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 for <roundup-devel@lists.sourceforge.net>; Tue, 5 Feb 2002 12:29:17 -0500 (EST)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 To: roundup-devel@lists.sourceforge.net
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 X-Mailer: Lotus Notes Release 5.0.8 June 18, 2001
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 Message-ID: <OF2C7B87C4.DF1574A8-ON85256B56.0060B9A2@lotus.com>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 From: "Daniel Clark/CAM/Lotus" <daniel_clark@us.ibm.com>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 X-MIMETrack: Serialize by Router on A3MAIL/CAM/H/Lotus(Build V5010_01222002 |January 22, 2002) at
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 02/05/2002 12:25:48 PM
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 MIME-Version: 1.0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 Content-type: text/plain;
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 charset=iso-8859-1
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 Content-transfer-encoding: quoted-printable
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 Subject: [Roundup-devel] Alternative authentication for roundup
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 Sender: roundup-devel-admin@lists.sourceforge.net
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 Errors-To: roundup-devel-admin@lists.sourceforge.net
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 X-BeenThere: roundup-devel@lists.sourceforge.net
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 X-Mailman-Version: 2.0.5
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 Precedence: bulk
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 List-Help: <mailto:roundup-devel-request@lists.sourceforge.net?subject=help>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 List-Post: <mailto:roundup-devel@lists.sourceforge.net>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/roundup-devel>,
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 <mailto:roundup-devel-request@lists.sourceforge.net?subject=subscribe>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 List-Id: <roundup-devel.lists.sourceforge.net>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/roundup-devel>,
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 <mailto:roundup-devel-request@lists.sourceforge.net?subject=unsubscribe>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 List-Archive: <http://www.geocrawler.com/redir-sf.php3?list=roundup-devel>
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 X-Original-Date: Tue, 5 Feb 2002 12:27:15 -0500
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 Date: Tue, 5 Feb 2002 12:27:15 -0500
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 Status: R
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 X-Status: N
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 I'm trying to get roundup to work with an alternative method of
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 authentication (due to a corporate requirement of using a common intran=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 et
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 password). I've created an "altauth" module to abstract the details of =
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55 the
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
56 authentication. Since the hyperdb usernames and passwords seem to be
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57 referenced in a lot of places in the code, I am just creating hyperdb
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 entries for the users if they exist and enter their correct passwords
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 against the alternate authentication source. For the most part this eff=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 ects
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 the login_action function in cgi_client.py. I've completed some changes=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
62
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 that make this work for the web interface, but as I am new to roundup a=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
64 nd
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
65 relatively new to python I thought I'd post the changes for review. If
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66 others would find this functionality useful I would be happy if these
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67 changes (probably reworked) could make it into future releases.
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 The main things I think I still need to do are add equivalent changes t=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 o
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71 mailgw.py and handle messages from the alternative authentication sourc=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72 e
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73 better.
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75 --- cgi_client.py Tue Feb 5 21:56:30 2002
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 +++ cgi_client.py-altauth Tue Feb 5 21:56:30 2002
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
77 @@ -27,6 +27,13 @@
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78 import roundupdb, htmltemplate, date, hyperdb, password
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
79 from roundup.i18n import _
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 +try:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 + from altauth import altauth
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83 + import password as password_module
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 + altauth_exists =3D 1
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 +except:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 + altauth_exists =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
87 +
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88 class Unauthorised(ValueError):
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 pass
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91 @@ -807,7 +814,24 @@
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92 password =3D self.form['__login_password'].value
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93 else:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 password =3D ''
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 + # if using alternate authentication, perform it.
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96 + if altauth_exists:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 + auth =3D altauth(self.user, password)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98 # make sure the user exists
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99 + if altauth_exists:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 + if auth.exists:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
101 + try:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
102 + uid =3D self.db.user.lookup(self.user)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
103 + except KeyError:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
104 + username =3D str(self.user)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105 + self.db =3D self.instance.open('admin')
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
106 + cl =3D self.db.user
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
107 + props =3D {'username':username, 'realname':auth.re=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108 alname,
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
109 + 'organisation':auth.org, 'address':auth.e=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
110 mail,
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
111 + 'phone':auth.phone}
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
112 + uid =3D cl.create(**props)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
113 + self.user =3D cl.get(uid, 'username')
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
114 + self.db.commit()
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
115 try:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
116 uid =3D self.db.user.lookup(self.user)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
117 except KeyError:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
118 @@ -819,6 +843,20 @@
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
119 return 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
120
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
121 # and that the password is correct
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
122 + if altauth_exists:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
123 + if auth.success:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
124 + name =3D str(self.user)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
125 + self.db =3D self.instance.open(name)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
126 + value =3D password_module.Password(password.strip())
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
127 + password_dict =3D {'password':value}
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
128 + user =3D self.db.user
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
129 + user.set(uid, **password_dict)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
130 + self.db.commit()
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
131 + else:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
132 + self.make_user_anonymous()o
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
133 + action =3D self.form['__destination_url'].value
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
134 + self.login(message=3D_(auth.message), action=3Daction)=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
135
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
136 + return 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
137 pw =3D self.db.user.get(uid, 'password')
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
138 if password !=3D pw:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
139 self.make_user_anonymous()
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
140
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
141
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
142 example altauth.py:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
143
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
144 __doc__ =3D """
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
145 Alternative authentication for roundup
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
146 """
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
147
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
148 import pipes, os, string
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
149
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
150 class altauth:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
151 """
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
152 Arguments:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
153 username : username
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
154 password : password in plaintext
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
155
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
156 Instance variables:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
157 realname : username's real name
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
158 org : username's organization
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
159 email : username's email address
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
160 phone : username's phone number
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
161
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
162 code : return code from alternate authentication
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
163 message : message from alternate authentication
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
164 exists : does user exist in alternate autentication source?
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
165 success : did user enter a valid user / password combo?
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
166 """
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
167 def __init__(self, username=3DNone, password=3DNone):
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
168 # Make sure user and password have values - else java cwauthcmd=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
169 hangs.
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
170 if username is None:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
171 username =3D "test"
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
172 if password is None:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
173 password =3D "test"
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
174
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
175 # In Bluepages, your username is your email address, but this m=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
176 ight not
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
177 # be true for other authentication sources.
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
178 self.email =3D username
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
179
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
180 # Get realname, phone and org from Bluepages
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
181 cmd =3D "phone ldap emailaddress=3D%s format givenname sn telep=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
182 honenumber dept" % self.email
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
183 s =3D os.popen(cmd).readlines()[0].strip().split()
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
184 self.realname =3D string.join(s[:-2])
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
185 self.phone =3D s[-2]
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
186 self.org =3D s[-1]
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
187
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
188 # Open a pipeline to java cwauth stuff. The most secure option =
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
189 I could think of
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
190 # besides JPE (Java Python Extension), which I couldn't get to =
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
191 work.
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
192 os.umask(077)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
193 t=3Dpipes.Template()
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
194 t.append('java cwauthcmd', '--')
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
195 tmpfile =3D os.tmpnam()
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
196 f=3Dt.open(tmpfile, 'w')
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
197 f.write(username + " " + password)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
198 f.close()
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
199 self.code =3D int(open(tmpfile).read().strip())
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
200 os.remove(tmpfile)
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
201
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
202 if self.code =3D=3D 0:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
203 self.message =3D "Success. The authentication was successfu=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
204 l."
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
205 self.exists =3D 1
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
206 self.success =3D 1
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
207 elif self.code =3D=3D 2:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
208 self.message =3D "Not registered. Visit http://w3.ibm.com/p=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
209 assword/"
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
210 self.exists =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
211 self.success =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
212 elif self.code =3D=3D 3:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
213 self.message =3D "LDAP Error. There was an error communicat=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
214 ing with Bluepages."
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
215 self.exists =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
216 self.success =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
217 elif self.code =3D=3D 4:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
218 self.message =3D "No Record Found. No user was found havin=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
219 g that e-mail address."
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
220 self.exists =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
221 self.success =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
222 elif self.code =3D=3D 5:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
223 self.message =3D "Multiple Records Found. More than one ent=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
224 ry exists for that e-mail address."
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
225 self.exists =3D 1
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
226 self.success =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
227 elif self.code =3D=3D 6:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
228 self.message =3D "Incorrect password. Try again or visit ht=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
229 tp://w3.ibm.com/password"
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
230 self.exists =3D 1
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
231 self.success =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
232 else:
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
233 self.message =3D "Unknown result code. Contact daniel_clark=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
234 @us.ibm.com"
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
235 self.exists =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
236 self.success =3D 0
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
237
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
238
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
239 --
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
240 Daniel Clark =A7 Sys Admin & Assistant Release Engineer
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
241 IBM =BB Lotus =BB Messaging Technology Group =A7 http://w3.mtg.lotus.co=
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
242 m
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
243 Tieline 693-7353 =A7 External 617-693-7353 =A7 Mobile 617-877-0702
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
244 AIM as djbclark =A7 Sametime as Daniel Clark/CAM/Lotus
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
245 =
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
246
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
247
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
248
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
249 _______________________________________________
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
250 Roundup-devel mailing list
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
251 Roundup-devel@lists.sourceforge.net
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
252 https://lists.sourceforge.net/lists/listinfo/roundup-devel
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
253
741b203969d2 Hack for implementing LDAP auth.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
254

Roundup Issue Tracker: http://roundup-tracker.org/