sorry for delay:

<!-- Modal -->
<div id="Modallogin" class="modal hide fade" tabindex="-1" role="dialog" 
aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" 
aria-hidden="true">×</button>
<h3 id="myModalLabel">Log in </h3>
    </div>
    <div class="modal-body">
    <p>You could login by your yahoo or gmail account.
    </p>
        <div id='login_result'></div>    
        {{=form}}
        

</div>
</div>

<script>
    function login_process(user_type){
    $('#Modallogin').modal('show');
    $('#auth_user_type').val(user_type);
    }
    
    function login(){
    var data = $('form').serialize();     
    $('form input').each(function(){$(this).attr('disabled',true);});
    $('#login_result').removeClass('alert alert-error').text('');
    $('#login_result').addClass('alert alert-info').text('Connecting...');
    $.ajax({  
  type: "POST",  
        url: '{{=URL('default','index')}}',  
  data: data,
        success : function(response){
        $('form input').each(function(){$(this).attr('disabled',false);});
        try{
        response = jQuery.parseJSON(response);
        }
        catch(e){
            var response = {'msg':'failed to proceed'};
        } 
        if (!response.logged){
        $('#login_result').removeClass('alert alert-info').addClass('alert 
alert-error').text(response.msg);
    }else{
            window.location=response.redirect;
            }
    }
});      
    return false;
    }

</script>


On Thursday, February 28, 2013 4:15:50 AM UTC+3:30, Massimo Di Pierro wrote:
>
> I still do not understand. Why index() is under returning some times json 
> and some times dict with a form? Who makes the ajax callback? If this to be 
> embedded in a large page? What is the JS?
>
> On Wednesday, 27 February 2013 14:49:04 UTC-6, yashar wrote:
>>
>>     def ajax_login_bare(self, username, password):
>>         """
>>         check user login and
>> return tuple of (boolean,msg) which first field is successfull login or 
>> not
>> and second is failure massage 
>>         """
>>
>>         request = current.request
>>         session = current.session
>>         table_user = self.settings.table_user
>>         if self.settings.login_userfield:
>>             userfield = self.settings.login_userfield
>>         elif 'username' in table_user.fields:
>>             userfield = 'username'
>>         else:
>>             userfield = 'email'
>>         passfield = self.settings.password_field
>>         key = {userfield:username,passfield:password}
>>         user = self.db(table_user[userfield] == username).select().first()
>>         if user:
>> # user in db, check if registration pending or disabled
>>             temp_user = user
>>             if temp_user.registration_key == 'pending':
>>                 return (False,self.messages.registration_pending)
>>             elif temp_user.registration_key in ('disabled', 'blocked'):
>>                 return (False,self.messages.login_disabled)
>>             elif not temp_user.registration_key is None and 
>> temp_user.registration_key.strip():
>>                 return (False,self.messages.registration_verifying)
>> # try alternate logins 1st as these have the
>>         # current version of the password
>>             user = None
>>             for login_method in self.settings.login_methods:
>>                 if login_method != self and 
>> login_method(username,password):
>>                     if not self in self.settings.login_methods:
>>     # do not store password in db
>>                         password = None
>>                     user = self.get_or_create_user(key)
>>                     break
>>             if not user:
>>     # alternates have failed, maybe because service inaccessible
>>                 if self.settings.login_methods[0] == self:
>>                 # try logging in locally using cached credentials
>>                     if password == temp_user[passfield]:
>>                     # success
>>                         user = temp_user
>>         else:
>> # user not in db
>>             if not self.settings.alternate_requires_registration:
>>             # we're allowed to auto-register users from external systems
>>                 for login_method in self.settings.login_methods:
>>                     if login_method != self and 
>> login_method(username,password):
>>                         if not self in self.settings.login_methods:
>>                         # do not store password in db
>>                             key[passfield] = None
>>                         user = self.get_or_create_user(key)
>>                         break
>>         if not user:
>>             
>> self.log_event(self.messages.login_failed_log,request.post_vars)
>>             return (False,self.messages.invalid_login)
>>         else:
>>             user = Row(table_user._filter_fields(user, id=True))
>>             # process authenticated users
>>             # user wants to be logged in for longer
>>             self.login_user(user)
>>             session.auth.expiration = \
>>                 request.vars.get('remember', False) and \
>>                 self.settings.long_expiration or \
>>                 self.settings.expiration
>>             session.auth.remember = 'remember' in request.vars
>>             self.log_event(self.messages.login_log, user)
>>             return (True,self.messages.logged_in)
>>
>>
>>
>> def index():
>>     if request 
>> <http://127.0.0.1:8000/examples/global/vars/request>.post_vars:
>>         from gluon.serializers import json
>>         logged,msg =  auth.ajax_login_bare(request 
>> <http://127.0.0.1:8000/examples/global/vars/request>.vars.email,request 
>> <http://127.0.0.1:8000/examples/global/vars/request>.vars.password)
>>         if logged:
>>             return json(dict(redirect 
>> <http://127.0.0.1:8000/examples/global/vars/redirect>=get_user_info(),logged=logged,msg=msg))
>>         else: 
>>             return json(dict(logged=logged,msg=msg))
>>             
>>     form = auth.login()
>>
>> return dict(form=form) 
>>
>

-- 

--- 
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/groups/opt_out.


Reply via email to