I apologize, but there is a bit of a language barrier here. What you've written is very confusing to me

On 2/23/2012 3:14 PM, Richard Vézina wrote:
How your other system call you ips table? Directly at backend level? If so you can't just use the proper field type to make work web2py correctly and use plainfully you will have to master much more web2py and how it works to make it works the way you need it to work.

If the orther program that use the ips table access the data in ips by passing query to web2py then you can change your field type to integer and let web2py do it works.

Richard

On Thu, Feb 23, 2012 at 3:07 PM, Larry G. Wapnitsky <[email protected] <mailto:[email protected]>> wrote:

    I'm pretty lost in everything you've described.  I've been working
    with web2py for 2+ days and am slowly getting the hang of it.  If
    you could dumb it down a bit, that would be helpful.

    FYI - I can print the username using auth.user_id.username
    anyplace else in a web page.  I just need to submit that variable
    to the database when my form is properly filled out.  Nothing
    more, nothing less.  I know this can be done using hidden form
    objects in regular HTML, but I don't see how to do that with CRUD.


    On 2/23/2012 3:02 PM, Richard Vézina wrote:
    I am pretty not sure about the hack, but you can try... It is
    pretty dirty... And you will not be able to use represent except
    if you transform back you id from string to int.

    Why you don't just write a simple function that you other
    ressource will call to get the ids under string format like this :

    def id_to_string(id):
        return str(id)


    Richard

    On Thu, Feb 23, 2012 at 2:58 PM, Richard Vézina
    <[email protected]
    <mailto:[email protected]>> wrote:

        In that case I think you will have to build something on your
        side... Maybe implement your own IS_IN_DB could be a
        solution... A hack could be this :

        db.ips.reportedby.requires=str(IS_IN_DB())

        But I don't think you will be able to define a foreign key...
        You will have to enforce your integrity check by yourself at
        the form level with validator...

        So, change your field definition for string only,
        no  "db.auth_user" and by the way that was wrong model
        definition I didn't catch at first read...

        Richard


        On Thu, Feb 23, 2012 at 2:53 PM, Larry G. Wapnitsky
        <[email protected] <mailto:[email protected]>> wrote:

            it's only one user that I need to enter into the database
            at a time, and only the username.   reportedby needs to
            be text due to another application that uses the same
            database.


            On 2/23/2012 2:51 PM, Richard Vézina wrote:
            Ok,

            So you need to create a foreign key relation... So you
            need "requires="...

            db.ips.reportedby.requires=IS_IN_DB(db, 'ips.id
            <http://ips.id>', '%(first_name)s %(last_name)s
            %(username)s %(whateverfieldname)s')

            If you have only one referenced user you will have to
            change the type of reportedby to integer since the id of
            ips is a int. If you want to reference many users you
            will have to add something to you IS_IN_DB requires :

            db.ips.reportedby.requires=IS_IN_DB(db, 'ips.id
            <http://ips.id>', '%(first_name)s %(last_name)s
            %(username)s %(whateverfieldname)s', multiple=True)

            And you will have to change also the type of the field
            for : list:reference type

            See book chapter 6 whit keyword list:reference

            Richard


            On Thu, Feb 23, 2012 at 2:43 PM, Larry G. Wapnitsky
            <[email protected] <mailto:[email protected]>> wrote:

                I need to have the username added to another SQL
                table on submission of a form.

                This is some of the code:

                db.define_table('ips',
                    Field('id', 'id'),
                    Field('ipaddress','string', length=15, unique=True),
                    Field('dateadded', 'datetime', default=request.now),
Field('reportedby', 'string', db.auth_user, writable=False, readable=False),
                    Field('updated', 'datetime', default=request.now),
                    Field('attacknotes', 'text'),
                    Field('b_or_w', 'string', length=1),
                    migrate=False)


                db.ips.ipaddress.requires = [IS_NOT_IN_DB(db,
                'ips.ipaddress')]
                db.ips.ipaddress.requires.append(IS_IPV4())


                the field 'reportedby' needs to be filled in with
                the username taken from AD for the logged in user.


                On 2/23/2012 2:37 PM, Richard Vézina wrote:
                Ok, but what's is the problem... I don't understand
                sorry.

                Richard

                On Thu, Feb 23, 2012 at 2:33 PM, Larry G. Wapnitsky
                <[email protected] <mailto:[email protected]>> wrote:

                    The issue is not putting the username into the
                    web2py database, but another database that's
                    storing information.

                    On 2/23/2012 2:32 PM, Richard Vézina wrote:
                    I am not sure how you connect to LDAP, but
                    there is utilities to connect LDAP with
                    web2py. You should read about those in the
                    book searching with LDAP as keyword. If you
                    only want to import LDAP user into web2py
                    database table, I suggest you to use the user
                    table of the RBAC.

                    So then you can access those entries with
                    CRUD, but also manage who is allow to access
                    those sensitive informations.

                    Richard

                    On Thu, Feb 23, 2012 at 2:13 PM, Larry
                    Wapnitsky <[email protected]
                    <mailto:[email protected]>> wrote:

                        (newbie disclaimer :))

                        I'm logging in to my application via
                        AD/LDAP.  I can get the variable of the
                        username with no issue.  What i need to do
                        next is take this variable and insert it
                        into a field in a CRUD form and have it
                        show in my database.

                        Thanks,
                        Larry








Reply via email to