Ok, I THINK the error is due to our custome tables ie: Group is defined as :
db.define_table('auth_group', Field('group_id', type='integer'), Field('role', type='string', length=50), Field('description', type='string', length=256), Field('company_number', type='integer', default=0), Field('created_on', type='datetime'), Field('created_by', type='string', length=50), Field('modified_on', type='datetime'), Field('modified_by', type='string', length=50), Field('notes', type='text'), primarykey=['group_id'], migrate=False) SO (Correct me if I am wrong) it's trying to use the "self.user.id" which is not defined, since these are cutome tables. If so, how to I go about correcting this ? As always, thanks ... *Ben Duncan* DBA / Chief Software Architect Mississippi State Supreme Court Electronic Filing Division On Thu, Dec 13, 2018 at 3:06 PM Ben Duncan <linux...@gmail.com> wrote: > > *Ben Duncan* > DBA / Chief Software Architect > Mississippi State Supreme Court > Electronic Filing Division > Argg ... spoke to soon : > > Errors : > > web2py™ Version 2.17.2-stable+timestamp.2018.10.06.18.54.02 > Python Python 2.7.13: /usr/bin/python (prefix: /opt/rh/python27/root/usr) > Traceback > > 1. > 2. > 3. > 4. > 5. > 6. > 7. > 8. > 9. > 10. > 11. > 12. > 13. > 14. > 15. > 16. > 17. > 18. > > Traceback (most recent call last): > File "/data/web2py/web2py/gluon/restricted.py", line 219, in restricted > exec(ccode, environment) > File "/data/web2py/web2py/applications/Mec/controllers/default.py" > <https://10.13.70.47/admin/default/edit/Mec/controllers/default.py>, line > 205, in <module> > File "/data/web2py/web2py/gluon/globals.py", line 421, in <lambda> > self._caller = lambda f: f() > File "/data/web2py/web2py/applications/Mec/controllers/default.py" > <https://10.13.70.47/admin/default/edit/Mec/controllers/default.py>, line 25, > in user_bare > user = auth.login_bare(username, cryptpassword) > File "/data/web2py/web2py/gluon/tools.py", line 2283, in login_bare > self.login_user(user) > File "/data/web2py/web2py/gluon/authapi.py", line 739, in login_user > self.update_groups() > File "/data/web2py/web2py/gluon/authapi.py", line 503, in update_groups > table_membership.user_id == self.user.id).select() > File > "/opt/rh/python27/root/usr/lib/python2.7/site-packages/pyDAL-17.11-py2.7.egg/pydal/objects.py", > line 109, in __getattr__ > raise AttributeError > AttributeError > > Error snapshot [image: help] > <https://10.13.70.47/admin/default/ticket/Mec/10.13.69.144.2018-12-13.15-04-19.fd6eaf1e-d535-4d77-a405-c1054cbd0199#> > > <type 'exceptions.AttributeError'>() > > inspect attributes > Frames > > - > > *File /data/web2py/web2py/gluon/restricted.py in restricted at line > 219* code arguments variables > - > > *File /data/web2py/web2py/applications/Mec/controllers/default.py in > <module> at line 205* code arguments variables > - > > *File /data/web2py/web2py/gluon/globals.py in <lambda> at line 421* > code arguments variables > - > > *File /data/web2py/web2py/applications/Mec/controllers/default.py in > user_bare at line 25* code arguments variables > - > > *File /data/web2py/web2py/gluon/tools.py in login_bare at line 2283* > code arguments variables > - > > *File /data/web2py/web2py/gluon/authapi.py in login_user at line 739* > code arguments variables > - > > *File /data/web2py/web2py/gluon/authapi.py in update_groups at line > 503* code arguments variables > - > > *File > > /opt/rh/python27/root/usr/lib/python2.7/site-packages/pyDAL-17.11-py2.7.egg/pydal/objects.py > in __getattr__ at line 109* code arguments variables > Function argument list > > (self=<Row {'ap_allowed': False, 'iv_allowed': False, ...ress_2': > None, 'address_3': None, 'notes': None}>, k='id') > Code listing > > 104. > 105. > 106. > 107. > 108. > 109. > 110. > 111. > 112. > 113. > > > def __getattr__(self, k): > try: > return self.__getitem__(k) > except KeyError: > raise AttributeError > > def __copy__(self): > return Row(self) > > Variables > builtinAttributeError <type 'exceptions.AttributeError'> > > Context > > locals request session response > In file: /data/web2py/web2py/applications/Mec/controllers/default.py > > 1. > > <code object <module> at 0x7f1259ef06b0, file > "/data/web2py/web2py/applications/Mec/controllers/default.py", line 11> > > > On Thu, Dec 13, 2018 at 3:02 PM Ben Duncan <linux...@gmail.com> wrote: > >> Ok, I seem to have it working now: >> >> My Code Snippets if anyone is interested: >> >> controllers/default.py >> def user_bare(): >> alg = 'pbkdf2(1000,20,sha512)' >> custom_auth_table.password.requires = None >> username, password = request.post_vars['username'], >> request.post_vars['password'] >> session.is_logged_in = "NO" >> cryptpassword = >> str(CRYPT(digest_alg=alg,salt='Mars_Salt_4u')(password)[0]) >> >> user = auth.login_bare(username, cryptpassword) >> >> #if auth.is_logged_in() : >> if user : >> session.is_logged_in = "YES" >> if auth.user['company_number'] == 0: >> redirect(URL('company_choose')) >> else: >> redirect(URL('index')) >> >> return dict() >> >> >> view/default/user_bar.html >> >> {{extend 'layout.html'}} >> >> <INPUT type="button" value="HOME" >> onclick="location.href='{{=URL('index')}}'"/> >> >> <form enctype="multipart/form-data" >> action="{{=URL()}}" method="post"> <!--{{#or use =form.custom.begin}}--> >> <div class="form-group"> >> <input type="text" class="form-control" name="username"> >> </div> >> <div class="form-group"> >> <input type="password" class="form-control" name="password"> >> </div> >> <button type="submit"> >> Submit >> </button> >> </form> <!--{{#or use =form.custom.end}}--> >> >> >> >> *Ben Duncan* >> DBA / Chief Software Architect >> Mississippi State Supreme Court >> Electronic Filing Division >> >> >> On Thu, Dec 13, 2018 at 2:57 PM Ben Duncan <linux...@gmail.com> wrote: >> >>> Ok, thanks, will revisit it. I was getting insert errors from it before. >>> Maybe my ignorance ... >>> >>> >>> *Ben Duncan* >>> DBA / Chief Software Architect >>> Mississippi State Supreme Court >>> Electronic Filing Division >>> >>> >>> On Thu, Dec 13, 2018 at 2:14 PM Anthony <abasta...@gmail.com> wrote: >>> >>>> Got it, but I don't see login_bare/login_user/update_groups getting in >>>> the way of any of that. The update_groups method simply adds a dictionary >>>> of the user's current group ids/roles to the session, which can be used >>>> instead of doing a database lookup on each request. You are free to ignore >>>> it. >>>> >>>> Anthony >>>> >>>> On Thursday, December 13, 2018 at 11:34:05 AM UTC-5, Ben Duncan wrote: >>>>> >>>>> Thanks Anthony. >>>>> >>>>> I'm trying to maintain some reference to the auth mechanism , but our >>>>> needs get a little more convoluted. >>>>> >>>>> Some Background Info: >>>>> This is a accounting system (AR/AP/GL/IV/OE/PR/BI/BR/RMA/ ..etc) based >>>>> upon about 30 years of collected source >>>>> I have for Chancery / Circuit Clerks for Fees, Fines and restitution >>>>> and land records et.all. >>>>> >>>>> I'm trying to keep it generic as possible for the Supreme Court. >>>>> >>>>> From the Clerks view, the are elected officials for a particular >>>>> County/Jurisdiction. However, in some instances the may cover several >>>>> counties / courts (if those are small). >>>>> >>>>> Courts are grouped in "districts" and we are going to using "company >>>>> id" numbers to signify those courts within the districts and all courts >>>>> under one >>>>> umbrella for the database. >>>>> >>>>> Now the CLERKS have deputy clerks, who may OR may not be assigned to >>>>> multiple county/courts and may be limited to WHAT or what they cannot >>>>> do, but are designated by the "company" code to which court they will >>>>> have access to. >>>>> Add to that, the wants of our Office of the State Auditors our very >>>>> own AOC (Administrator of Courts and their auditors) it gets pretty >>>>> convulsed in a hurry. >>>>> >>>>> Now looking at the ACCESS CONTROL stuff, we are really a flipped >>>>> version of that - GROUP and MEMBERSHIP before and controlling the >>>>> auth_user.as well as company id in the group and >>>>> membership/permission file.signifying what court the have jurisdiction to >>>>> use. (Phew). >>>>> >>>>> I hope I haven't totally confused you. >>>>> >>>>> Thanks again ... >>>>> *Ben Duncan* >>>>> DBA / Chief Software Architect >>>>> Mississippi State Supreme Court >>>>> Electronic Filing Division >>>>> >>>>> >>>>> On Thu, Dec 13, 2018 at 10:03 AM Anthony wrote: >>>>> >>>>>> On Wednesday, December 12, 2018 at 6:57:07 PM UTC-5, Ben Duncan wrote: >>>>>>> >>>>>>> Yes, I wanted to just use the auth_table. >>>>>>> Everything else is controlled outside of the normal mechs .. >>>>>>> >>>>>> >>>>>> If you don't want to use the Auth login mechanism, then I suppose you >>>>>> can write your own logic. Keep in mind you will then be responsible for >>>>>> updating the session with the appropriate auth data so Auth knows the >>>>>> user >>>>>> is logged in on each subsequent request. But really, I don't see why you >>>>>> would do that just to avoid having the list of group memberships >>>>>> automatically updated upon login -- what problem is that creating for >>>>>> you? >>>>>> >>>>>> Anthony >>>>>> >>>>>> -- >>>>>> Resources: >>>>>> - http://web2py.com >>>>>> - http://web2py.com/book (Documentation) >>>>>> - http://github.com/web2py/web2py (Source code) >>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "web2py-users" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to web2py+unsubscr...@googlegroups.com. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> -- >>>> Resources: >>>> - http://web2py.com >>>> - http://web2py.com/book (Documentation) >>>> - http://github.com/web2py/web2py (Source code) >>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "web2py-users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to web2py+unsubscr...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.