That may be just the ticket.  Especially if I modify the list to be a db 
table that can be maintained by the site admin.  I will give that a try and 
see what I come up with :)

On Tuesday, July 10, 2012 6:15:23 PM UTC-4, Massimo Di Pierro wrote:
>
> How about this:
>
> AUTHORIZED_EMAILS = ['[email protected]']
> url1 = URL('default','you_are_not_authorized')
> auth.settings.extra_fields['auth_user']=[Field('authorized','boolean',default=False,compute=lambda
>  
> row: row.email in AUTHORIZED_EMAILS)]
> if auth.user and not auth.user.authorized and not URL()==url1: 
> redirect(url1)
>
>
>
>
>
> On Tuesday, 10 July 2012 13:15:44 UTC-5, Dave wrote:
>>
>> Agreed.  It is not a Janrain specific issue, I am sure the same applies 
>> for other non-local authentication schemes.  In other systems I have 
>> implemented in the past I would allow authentication externally, but 
>> configured authorization separately.  An example from my past:  I have a 
>> webapp that I would like to use Active Directory authentication for. 
>>  Unfortunately, the audience of authorized users is not the entire company. 
>>  In that case a local database table with a list of authorized users was 
>> appropriate.
>>
>> In other cases maybe it makes sense to allow users to "request access" 
>> and that access to be approved or denied by a system admin.  { similar to 
>> the approval functionality in the default/user/register code }
>>
>> I suppose as a broader question, I should ask...  First, is there already 
>> a mechanism to separate the functions of authentication and authorization? 
>>  It seems to me that currently if authentication succeeds, that is it... 
>>  There is no authorization step.  Second, if the first answer is no, would 
>> it be desirable to add an extensible authorization capability to the 
>> framework?
>>
>> Thoughts?
>>
>>
>>
>> On Tuesday, July 10, 2012 1:45:00 PM UTC-4, Massimo Di Pierro wrote:
>>>
>>> Your problem is limiting the number of users who can sign in. I am not 
>>> sure this is a janrain issue.
>>> You need to handle it somehow at the web2py level and it should be 
>>> independent on which method you use for authentication (janrain or other).
>>>
>>> It can be done but how it is done depends on the details of your policy.
>>>
>>>
>>>
>>>
>>> On Tuesday, 10 July 2012 11:40:08 UTC-5, Dave wrote:
>>>>
>>>> I spent some time searching for this and have not come up with much.
>>>>
>>>> Has anybody implemented or tried to implement user authorization (read: 
>>>> limit users that may sign in) with Janrain?
>>>>
>>>> I think there are two possibilities here...  The first possibility 
>>>> falls under standard authorization where you define a "list" of users that 
>>>> are authorized somewhere in db.auth* which is consulted at login.  Of 
>>>> course, there is a potential issue with impersonation where someone other 
>>>> than the intended user registers a FaceBook, LinkedIn, etc account...
>>>>
>>>> The other path would be to either gate registration similar 
>>>> to auth.settings.registration_requires_approval = True for builtin 
>>>> authentication.  That should be fairly easy to implement.  OR..  Leave the 
>>>> Janrain user creation alone and assign a group permission to controller 
>>>> methods.  The downside here is existing site code would have to be 
>>>> refactored if someone wants to go from local auth to janrain.  For 
>>>> example, 
>>>> @auth.requires_login() would have to become 
>>>> @auth.requires_membership('authorized') for the same level of security.
>>>>
>>>> Would anybody (besides me) be interested in this?
>>>>
>>>> I could work up some code
>>>>
>>>

Reply via email to