On Jan 2, 2011, at 7:01 AM, Rick wrote:
> 
> I changed the code but it still doesn't work:

Here's a fragment of my code that I use to delete a user. It's not ajax, but 
you'll get the idea:

            ut = auth.settings.table_user
            uu = urow.auth_user
            ...
            if not db(ut.username == username).count():
                ...complain and redirect...
            auth.del_group(auth.user_group(uu.id))  # uu.id is the user id I'm 
deleting
            db(ut.username == username).delete()

If you look at auth.del_group, you'll see that it does quite a bit of work to 
clean a user out of the group tables. I think I picked up this logic from the 
admin app, but I don't quite remember. 

I think it'd be nice if auth had a comprehensive delete-user function.



> 
> ==admin.html==
> {{extend 'layout.html'}}
> Add a user: <br>
> {{=form}}
> <br><br>
> Users:
> <br>
> {{for record in records:}}
> {{=record.username}} : {{=record.password}}
> [
> <a href="#"
> onclick="ajax('{{=URL('db(auth.settings.table_user_name==record.username).delete()')}}',
> [],'')">Delete this user</a>
> ]
> {{pass}}
> ============
> 
> ==Here is some code from models/db.py==
> auth = Auth(globals(), db)
> 
> db.define_table(
>    auth.settings.table_user_name,
>    Field('username'),
>    Field('password'),
>    Field('registration_key', default=''))
> 
> auth.define_tables()
> 
> custom_auth_table = db[auth.settings.table_user_name] # get the
> custom_auth_table
> ======
> 
> 
> 
> On Dec 30 2010, 6:21 pm, Rick <[email protected]> wrote:
>> Hi,
>> 
>> I don't know if the way I add users is proper, but it works. Now I try
>> to write a <a> tag for deleting users, and it doesn't work. Here is
>> the code:
>> 
>> ==in a controller file==
>> def admin():
>>         records = db().select(custom_auth_table.ALL,
>> orderby=custom_auth_table.username)
>>         #records = SQLFORM(custom_auth_table, user, deletable=True)
>>         form = SQLFORM(db[auth.settings.table_user_name])
>>         if form.accepts(request.post_vars, session):
>>                 session.flash = 'Address saved.'
>>                 redirect(URL('admin'))
>>         return dict(form=form, records=records)
>> ========
>> 
>> ==admin.html==
>> {{extend 'layout.html'}}
>> Add a user: <br>
>> {{=form}}
>> <br><br>
>> Users:
>> <br>
>> {{for record in records:}}
>> {{=record.username}} : {{=record.password}}
>>  [
>> <a href="#"
>> onclick="ajax('{{=URL('db[auth.remove.record.username]')}}',
>> [],'')">Delete this user</a>
>> ]
>> <br>
>> {{pass}}
>> ========
>> 
>> Thanks in advance for help


Reply via email to