Well, having a method reporting problems is great. My solution is primarily 
pragmatic: In case move the controllers in and analyse otherwise having 
them out of access.

After migrating to py4web I will think of such error mailing controller, 
sounds interesting.

On Friday, September 1, 2023 at 8:07:11 PM UTC+2 Jim S wrote:

> And to second your comment, I too have a controller method that allows 
> users with the proper access, the ability to add additional users.
>
> The only other reason I would want to access admin is to look at error 
> messages/tickets.  But, I have some method in place to read the error 
> messages and forward them to me in an email.
>
>
> -Jim
>
>
>
> On Friday, September 1, 2023 at 1:04:47 PM UTC-5 Jim S wrote:
>
>> If I try to go to admin/appadmin web2py returns:
>>
>> Admin is disabled because insecure channel
>>
>> Isn't that just the default behavior?
>>
>> -Jim
>>
>> On Friday, September 1, 2023 at 1:00:08 PM UTC-5 Clemens wrote:
>>
>>> I don't and I that's why I (re)move these to a hidden folder on system 
>>> level :-) What I need is to give customers the option to add new users by 
>>> themselves. For that I've written a small controller under the control of 
>>> 2FA and so on.
>>>
>>> Regards
>>> Clemens
>>>
>>>
>>> On Friday, September 1, 2023 at 7:40:19 PM UTC+2 Jim S wrote:
>>>
>>>> I'm just curious
>>>>
>>>> Why do you need access to the admin/appadmin apps in a production 
>>>> environment?
>>>>
>>>> I've never used them there.  I use in development, but never production
>>>>
>>>> -Jim
>>>>
>>>>
>>>> On Friday, September 1, 2023 at 11:54:02 AM UTC-5 Clemens wrote:
>>>>
>>>>> Removing the admin app as well as the appadmin controllers should kill 
>>>>> all options of administration. Move these to two to a folder away from 
>>>>> web2py. And then you can still call https://.../admin/site or 
>>>>> https://.../appadmin?
>>>>>
>>>>> On Friday, September 1, 2023 at 6:44:31 PM UTC+2 Ramos wrote:
>>>>>
>>>>>> yes i tried it on the admin app and it just does not work.
>>>>>> :)
>>>>>>
>>>>>>
>>>>>> Em sex., 1 de set. de 2023 às 16:53, Jim S <[email protected]> 
>>>>>> escreveu:
>>>>>>
>>>>>>> So, are you trying to protect the 'admin' application with 2fa?
>>>>>>>
>>>>>>> If so, can you add the 2fa code to the admin app?
>>>>>>>
>>>>>>> I haven't tried this before
>>>>>>>
>>>>>>> On Friday, September 1, 2023 at 10:24:29 AM UTC-5 Ramos wrote:
>>>>>>>
>>>>>>>> this admin
>>>>>>>>
>>>>>>>> https://mysite.com/admin
>>>>>>>>
>>>>>>>> Em sex., 1 de set. de 2023 às 16:08, Jim S <[email protected]> 
>>>>>>>> escreveu:
>>>>>>>>
>>>>>>>>> What does 'administrator password' mean to you?
>>>>>>>>>
>>>>>>>>> I'm not sure what you're referring to
>>>>>>>>>
>>>>>>>>> -Jim
>>>>>>>>>
>>>>>>>>> On Friday, September 1, 2023 at 9:53:43 AM UTC-5 Ramos wrote:
>>>>>>>>>
>>>>>>>>>> Hello Jim 
>>>>>>>>>> this line of code 
>>>>>>>>>> *auth.settings.auth_two_factor_enabled = True*
>>>>>>>>>> *does not protect the administrator password. Only created users.*
>>>>>>>>>> *That is my question, how to force administrator to use 2fa ?*
>>>>>>>>>> *regards*
>>>>>>>>>> *António*
>>>>>>>>>>
>>>>>>>>>> Em sex., 1 de set. de 2023 às 15:00, Jim S <[email protected]> 
>>>>>>>>>> escreveu:
>>>>>>>>>>
>>>>>>>>>>> Here is the code I wrote that only enforced 2fa for users 
>>>>>>>>>>> outside our local networks.
>>>>>>>>>>>
>>>>>>>>>>> There is some commented out code there that additionally allowed 
>>>>>>>>>>> me to specify users in a group so only that group was force to 2fa
>>>>>>>>>>>
>>>>>>>>>>> def _two_factor_required(auth_user):
>>>>>>>>>>>     """
>>>>>>>>>>>     check whether we need to enforce MFA on this login
>>>>>>>>>>>
>>>>>>>>>>>    We enforce MFA only on logins external to our network.
>>>>>>>>>>>
>>>>>>>>>>>     Returns
>>>>>>>>>>>     -------
>>>>>>>>>>>     bool - enforce MFA
>>>>>>>>>>>         - True means this login requires MFA
>>>>>>>>>>>         - False means we will not enforce MFA for this login
>>>>>>>>>>>     """
>>>>>>>>>>>     import ipaddress
>>>>>>>>>>>
>>>>>>>>>>>     return False  #  temp use to disable mfa
>>>>>>>>>>>
>>>>>>>>>>>     if len(request.args) > 0 and request.args[0] == "login":
>>>>>>>>>>>         if auth_user.mfa_override and datetime.datetime.now() <= 
>>>>>>>>>>> auth_user.mfa_override:
>>>>>>>>>>>             #  no mfa required if the user override is set   - 
>>>>>>>>>>> we added a field in auth_user to allow us to override if a user was 
>>>>>>>>>>> having 
>>>>>>>>>>> trouble or lost their phone or something
>>>>>>>>>>>             return False
>>>>>>>>>>>
>>>>>>>>>>>         qlf_networks = [
>>>>>>>>>>>             "9.9.9.9/22",
>>>>>>>>>>>             "9.9.9.0/24",
>>>>>>>>>>>             "9.9.9.101/24",
>>>>>>>>>>>         ]
>>>>>>>>>>>
>>>>>>>>>>>         ip_list = []
>>>>>>>>>>>         for range in qlf_networks:
>>>>>>>>>>>             ip_list.extend(ipaddress.IPv4Network(unicode(range)))
>>>>>>>>>>>
>>>>>>>>>>>         if ipaddress.IPv4Address(unicode(request.client)) in 
>>>>>>>>>>> ip_list:
>>>>>>>>>>>             #  if the client address is in the local address 
>>>>>>>>>>> list, then do NOT require MFA so set to False
>>>>>>>>>>>             return_value = False
>>>>>>>>>>>
>>>>>>>>>>>         #  build the MFA Required group members
>>>>>>>>>>>         # if return_value:
>>>>>>>>>>>         #     print(datetime.datetime.now())
>>>>>>>>>>>         #     ag = db(db.auth_group.role == "MFA Required 
>>>>>>>>>>> (web2py)").select().first()
>>>>>>>>>>>         #     if not ag:
>>>>>>>>>>>         #         ag = db.auth_group.insert("MFA Required 
>>>>>>>>>>> (web2py)")
>>>>>>>>>>>         #     for ou in db(
>>>>>>>>>>>         #         (db.auth_user.active == True)
>>>>>>>>>>>         #         | (
>>>>>>>>>>>         #             (db.auth_user.mfa_override == None)
>>>>>>>>>>>         #             & (db.auth_user.mfa_override <= 
>>>>>>>>>>> datetime.datetime.now())
>>>>>>>>>>>         #         )
>>>>>>>>>>>         #     ).select():
>>>>>>>>>>>         #         db.auth_membership.update_or_insert(user_id=
>>>>>>>>>>> ou.id, group_id=ag)
>>>>>>>>>>>         #
>>>>>>>>>>>         #     #  clear out any members that are currently exempt 
>>>>>>>>>>> from MFA
>>>>>>>>>>>         #     if ag:
>>>>>>>>>>>         #         for exempt_user in db(
>>>>>>>>>>>         #             (db.auth_user.mfa_override >= 
>>>>>>>>>>> datetime.datetime.now())
>>>>>>>>>>>         #             & (db.auth_user.active == True)
>>>>>>>>>>>         #         ).select():
>>>>>>>>>>>         #             db(
>>>>>>>>>>>         #                 (db.auth_membership.group_id == ag.id)
>>>>>>>>>>>         #                 & (db.auth_membership.user_id == 
>>>>>>>>>>> exempt_user.id)
>>>>>>>>>>>         #             ).delete()
>>>>>>>>>>>         #     db.commit()
>>>>>>>>>>>         #
>>>>>>>>>>>         #     print(datetime.datetime.now())
>>>>>>>>>>>         #
>>>>>>>>>>>         #     #  set to False to force web2py to check the 
>>>>>>>>>>> two_factor_authentication  group
>>>>>>>>>>>         #     return_value = False
>>>>>>>>>>>
>>>>>>>>>>> That code is in db.py
>>>>>>>>>>>
>>>>>>>>>>> Then....
>>>>>>>>>>>
>>>>>>>>>>> auth.settings.auth_two_factor_enabled = lambda user: 
>>>>>>>>>>> _two_factor_required(user)
>>>>>>>>>>> auth.messages.two_factor_comment = "QLF MFA - you have been sent 
>>>>>>>>>>> a code"
>>>>>>>>>>> auth.settings.two_factor_methods = [
>>>>>>>>>>>     lambda user, auth_two_factor: _send_sms(user, 
>>>>>>>>>>> auth_two_factor)
>>>>>>>>>>> ]
>>>>>>>>>>>
>>>>>>>>>>> My _send_sms code built and sms and sent it via Twilio or 
>>>>>>>>>>> RingCentral
>>>>>>>>>>>
>>>>>>>>>>> I wrote this code, but then we ended up not implementing.  The 
>>>>>>>>>>> web2py code is going away for us.  All the same concepts work in 
>>>>>>>>>>> py4web 
>>>>>>>>>>> (nudge wink wink)
>>>>>>>>>>>
>>>>>>>>>>> -Jim
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Friday, September 1, 2023 at 5:24:53 AM UTC-5 Ramos wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Anyone can help me ?
>>>>>>>>>>>>
>>>>>>>>>>>> Em qua., 30 de ago. de 2023 às 10:14, António Ramos <
>>>>>>>>>>>> [email protected]> escreveu:
>>>>>>>>>>>>
>>>>>>>>>>>>> in other words, how do i protect the administrator password? 
>>>>>>>>>>>>> it does not have a username , just a password. This is scary :)
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Em ter., 29 de ago. de 2023 às 19:44, António Ramos <
>>>>>>>>>>>>> [email protected]> escreveu:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> But that is for everyone, i just want to start with users 
>>>>>>>>>>>>>> with admin powers 
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Clemens <[email protected]> escreveu em ter., 
>>>>>>>>>>>>>> 29/08/2023 às 18:25 :
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Try enabling 2FA via the following setting, since this is 
>>>>>>>>>>>>>>> for all users:
>>>>>>>>>>>>>>> *auth.settings.auth_two_factor_enabled = True*
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>> Clemens
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Tuesday, August 29, 2023 at 6:09:26 PM UTC+2 Ramos wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> i just activated the two step auth with this 
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> auth.settings.two_factor_authentication_group = "auth2step"
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> but now how do i include the administrator user  ?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> regards
>>>>>>>>>>>>>>>> António
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -- 
>>>>>>>>>>>>>>> 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 [email protected].
>>>>>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>>>>>> https://groups.google.com/d/msgid/web2py/5fe99103-1d14-4b91-80eb-194402c08453n%40googlegroups.com
>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>> <https://groups.google.com/d/msgid/web2py/5fe99103-1d14-4b91-80eb-194402c08453n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -- 
>>>>>>>>>>> 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 [email protected].
>>>>>>>>>>>
>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>> https://groups.google.com/d/msgid/web2py/f92a15ab-45f6-41ae-b285-6b717abd3d7fn%40googlegroups.com
>>>>>>>>>>>  
>>>>>>>>>>> <https://groups.google.com/d/msgid/web2py/f92a15ab-45f6-41ae-b285-6b717abd3d7fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>> .
>>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>> 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 [email protected].
>>>>>>>>>
>>>>>>>> To view this discussion on the web visit 
>>>>>>>>> https://groups.google.com/d/msgid/web2py/c8187486-ebdd-4f18-a4d6-b9a45381fad9n%40googlegroups.com
>>>>>>>>>  
>>>>>>>>> <https://groups.google.com/d/msgid/web2py/c8187486-ebdd-4f18-a4d6-b9a45381fad9n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> -- 
>>>>>>> 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 [email protected].
>>>>>>>
>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/web2py/4d5dc6cd-66c9-42d7-ab5d-78f089987d65n%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/web2py/4d5dc6cd-66c9-42d7-ab5d-78f089987d65n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/4b590d0b-a194-4e45-b806-dda93ddbfcf3n%40googlegroups.com.

Reply via email to