[Zope-Checkins] CVS: Zope - Makefile:1.3.14.3 zpasswd.py:1.17.6.2
Casey Duncan
casey@zope.com
Fri, 9 May 2003 15:46:06 -0400
Update of /cvs-repository/Zope
In directory cvs.zope.org:/tmp/cvs-serv6096
Modified Files:
Tag: Zope-2_6-branch
Makefile zpasswd.py
Log Message:
Backout changes made in error
=== Zope/Makefile 1.3.14.2 => 1.3.14.3 ===
--- Zope/Makefile:1.3.14.2 Fri May 9 15:05:53 2003
+++ Zope/Makefile Fri May 9 15:46:05 2003
@@ -1,11 +1,12 @@
-PYTHON = python
+PYTHON=python2.1
+WHOA_PIGGY=wo_pcgi.py
+TESTOPTS=-a -v1
all:
- $(PYTHON) inst/compile_all.py
+ $(PYTHON) $(WHOA_PIGGY)
-.PHONY: pcgi
-pcgi:
- $(PYTHON) inst/build_pcgi.py
+test:
+ $(PYTHON) utilities/testrunner.py $(TESTOPTS)
-install:
- $(PYTHON) inst/make_instance.py
+clean:
+ ./stupid_clean
=== Zope/zpasswd.py 1.17.6.1 => 1.17.6.2 ===
--- Zope/zpasswd.py:1.17.6.1 Fri May 9 15:05:53 2003
+++ Zope/zpasswd.py Fri May 9 15:46:05 2003
@@ -1,93 +1,21 @@
#!/usr/bin/env python
##############################################################################
-#
-# Zope Public License (ZPL) Version 1.0
-# -------------------------------------
-#
-# Copyright (c) Digital Creations. All rights reserved.
-#
-# This license has been certified as Open Source(tm).
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# 1. Redistributions in source code must retain the above copyright
-# notice, this list of conditions, and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions, and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#
-# 3. Digital Creations requests that attribution be given to Zope
-# in any manner possible. Zope includes a "Powered by Zope"
-# button that is installed by default. While it is not a license
-# violation to remove this button, it is requested that the
-# attribution remain. A significant investment has been put
-# into Zope, and this effort will continue if the Zope community
-# continues to grow. This is one way to assure that growth.
-#
-# 4. All advertising materials and documentation mentioning
-# features derived from or use of this software must display
-# the following acknowledgement:
-#
-# "This product includes software developed by Digital Creations
-# for use in the Z Object Publishing Environment
-# (http://www.zope.org/)."
-#
-# In the event that the product being advertised includes an
-# intact Zope distribution (with copyright and license included)
-# then this clause is waived.
-#
-# 5. Names associated with Zope or Digital Creations must not be used to
-# endorse or promote products derived from this software without
-# prior written permission from Digital Creations.
-#
-# 6. Modified redistributions of any form whatsoever must retain
-# the following acknowledgment:
-#
-# "This product includes software developed by Digital Creations
-# for use in the Z Object Publishing Environment
-# (http://www.zope.org/)."
-#
-# Intact (re-)distributions of any official Zope release do not
-# require an external acknowledgement.
-#
-# 7. Modifications are encouraged but must be packaged separately as
-# patches to official Zope releases. Distributions that do not
-# clearly separate the patches from the original work must be clearly
-# labeled as unofficial distributions. Modifications which do not
-# carry the name Zope may be packaged in any form, as long as they
-# conform to all of the clauses above.
-#
-#
-# Disclaimer
-#
-# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
-# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-#
-# This software consists of contributions made by Digital Creations and
-# many individuals on behalf of Digital Creations. Specific
-# attributions are listed in the accompanying credits file.
-#
+#
+# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE
+#
##############################################################################
"""Zope user bootstrap system"""
__version__='$Revision$ '[11:-2]
-import sys, string, sha, binascii, whrandom, getopt, getpass, os
+import sys, sha, binascii, random, getopt, getpass, os
try:
from crypt import crypt
@@ -99,10 +27,10 @@
salt_choices = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789./")
- return whrandom.choice(salt_choices)+whrandom.choice(salt_choices)
+ return random.choice(salt_choices)+random.choice(salt_choices)
def generate_passwd(password, encoding):
- encoding=string.upper(encoding)
+ encoding=encoding.upper()
if encoding == 'SHA':
pw = '{SHA}' + binascii.b2a_base64(sha.new(password).digest())[:-1]
elif encoding == 'CRYPT':
@@ -113,19 +41,18 @@
return pw
def write_generated_password(home, ac_path, username):
- import whrandom
pw_choices = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789!")
acfile=open(ac_path, 'w')
pw = ''
for i in range(8):
- pw = pw + whrandom.choice(pw_choices)
+ pw = pw + random.choice(pw_choices)
acfile.write('%s:%s' % (username, generate_passwd(pw, 'SHA')))
acfile.close()
os.system('chmod 644 %s' % ac_path)
return pw
-
+
def write_access(home, user='', group=''):
ac_path=os.path.join(home, 'access')
if not os.path.exists(ac_path):
@@ -160,31 +87,6 @@
import do; do.ch(ac_path, user, group)
-def choose_inituser(home, user='', group=''):
- ac_path=os.path.join(home, 'inituser')
- if not os.path.exists(ac_path):
- print '-'*78
- print 'Please choose a username and password.'
- print 'This will create the initial user with which you manage Zope.'
- username = raw_input("Username: ")
- if username == '':
- return
-
- while 1:
- pw = getpass.getpass("Password: ")
- verify = getpass.getpass("Verify password: ")
- if verify == pw:
- break
- else:
- pw = verify = ''
- print "Password mismatch, please try again..."
- acfile=open(ac_path, 'w')
- acfile.write('%s:%s' % (username, generate_passwd(pw, 'SHA')))
- acfile.close()
- os.system('chmod 644 %s' % ac_path)
-
- import do; do.ch(ac_path, user, group)
-
def main(argv):
short_options = ':u:p:e:d:'
@@ -209,17 +111,17 @@
-d / --domains=
Set the domain names that the user user can log in from. Defaults to
any. OPTIONAL.
-
+
Filename is required and should be the name of the file to store the
information in (usually "inituser" or "access").
-
+
Copyright (C) 1999, 2000 Digital Creations, Inc.
""" % argv[0]
try:
if len(argv) < 2:
raise "CommandLineError"
-
+
optlist, args = getopt.getopt(sys.argv[1:], short_options, long_options)
if len(args) != 1:
@@ -232,7 +134,7 @@
username = ''
encoding = 'SHA'
domains = ''
-
+
for opt in optlist:
if (opt[0] == '-u') or (opt[0] == '--username'):
username = opt[1]
@@ -257,7 +159,7 @@
username = raw_input("Username: ")
if username != '':
break
-
+
while 1:
password = getpass.getpass("Password: ")
verify = getpass.getpass("Verify password: ")
@@ -271,12 +173,15 @@
print """
Please choose a format from:
-SHA - SHA-1 hashed password
+SHA - SHA-1 hashed password (default)
CRYPT - UNIX-style crypt password
-CLEARTEXT - no protection.
+CLEARTEXT - no protection
"""
encoding = raw_input("Encoding: ")
- if encoding != '':
+ if encoding == '':
+ encoding = 'SHA'
+ break
+ if encoding.upper() in ['SHA', 'CRYPT', 'CLEARTEXT']:
break
domains = raw_input("Domain restrictions: ")
@@ -285,12 +190,11 @@
access_file.write(username + ":" +
generate_passwd(password, encoding) +
domains)
-
+
except "CommandLineError":
sys.stderr.write(usage)
sys.exit(1)
-
+
# If called from the command line
if __name__=='__main__': main(sys.argv)
-