Mercurial > p > roundup > code
annotate patches/20020205.alternate_auth @ 2702:eb4e7b8d52a2
handle Py2.3+ datetime objects as Date specs [SF#971300]
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 29 Sep 2004 07:27:09 +0000 |
| parents | 741b203969d2 |
| children |
| 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 |
