[Zope] How can I check a user_acl folder to see if a user already exists?

M. Adam Kendall mak@kha0s.org
30 Oct 2001 09:06:24 -0500


First, you might want to take Danny Adairs advice (as posted to the
list), as he is correct in that if you have quite a few users, his
method will work much faster when checking if a user exists.
Also, the parameters that should be in the REQUEST for manage_users
are:
 name
 password
 confirm
 roles
 domains
So you will have to either 
1. Change your form to submit these same variable names, or, 
2. do a context.REQUEST.set('name', context.REQUEST.form['Username'])
etc, for each item you submit in the form and then pass REQUEST on
to manage_users.  After making sure the right variables are
defined in the request, your first attempt:
context.acl_users.manage_users('Add', context.REQUEST) 
should work for you.

On Tue, 2001-10-30 at 00:47, Rob Foster wrote:
> Adam,
> 
> Thanks for the code... I tried it out and it works great... However, I 
> realized that I was doing the check correctly. What I WASN'T doing right 
> was the "add user here" part... here are the various lines of code that 
> I tried under the "else:" with no luck... A little more help with 
> possibly some explanation as to what's happening would be great...
> 
> Here are the various lines I've tried:
> 
> NUMBER ONE ATTEMPT:
> context.acl_users.manage_users('Add', context.REQUEST)
> 
> NUMBER TWO ATTEMPT:
> self.acl_users._addUser(username,password,confirmpass,liste_role,0)
> 
> NUMBER THREE ATTEMPT:
> userfolder.manage_users(submit='Add', REQUEST=user_info)
> 
> 
> I got these bits of code from off various tutorials... Sometimes it 
> really sucks being a newbie :)
> 
> Thanks again,
> Rob
> 
> ---------------------------------------------------------------------------------------------
> 
> On Monday, October 29, 2001, at 10:14 PM, M. Adam Kendall wrote:
> 
> basically, you'll want to do something along the lines of:
> 
> request = context.REQUEST
> response = request.RESPONSE
> if request.form['Username'] in context.acl_users.getUserNames():
>     response.redirect('/UserAlreadyExists.html')
> else:
>     # add user here
> 
> On Mon, 2001-10-29 at 12:11, Rob Foster wrote:
> Here's the setup:
> 
> I'm trying to add users to my site by having them fill out a form with
> the following fields:
> 
> Username
> Password
> Confirm (password confirmation)
> 
> I want the form to post to a python script that will check the folder
> and do a redirect to another document depending on what happens... I
> don't know Python that well. I've tried doing it in dtml with no results.
> 
> Can someone help me with a little example code or at least point me to a
> product that does this? Thanks in advance. -Rob
>