Ejemplo n.º 1
0
 def lti_wrapper(*args, **kwargs):
     """
     Pass LTI reference to function or return error.
     """
     try:
         the_lti = LTI(lti_args, lti_kwargs)
         the_lti.verify()
         kwargs['lti'] = the_lti
         old_user = g.user
         g.user = User.from_lti("canvas", 
                                session["pylti_user_id"], 
                                session.get("lis_person_contact_email_primary", ""),
                                session.get("lis_person_name_given", "Canvas"),
                                session.get("lis_person_name_family", "User"))
         g.roles = session["roles"].split(",") if "roles" in session else []
         g.course = Course.from_lti("canvas", 
                                session["context_id"], 
                                session.get("context_title", ""), 
                                g.user.id)
         session['lti_course'] = g.course.id
         g.user.update_roles(g.roles, g.course.id)
         if old_user != g.user:
             flask_security.utils.logout_user()
             flask_security.utils.login_user(g.user, remember = True)
         if not old_user:
             flask_security.utils.login_user(g.user, remember = True)
     except LTIException as lti_exception:
         kwargs['lti'] = None
         kwargs['lti_exception'] = dict()
         kwargs['lti_exception']['exception'] = lti_exception
         kwargs['lti_exception']['kwargs'] = kwargs
         kwargs['lti_exception']['args'] = args
         flash("LTI Error: "+str(lti_exception)+".\nTry reloading!")
     return function(*args, **kwargs)
Ejemplo n.º 2
0
 def lti_wrapper(*args, **kwargs):
     """
     Pass LTI reference to function or return error.
     """
     try:
         the_lti = LTI(lti_args, lti_kwargs)
         the_lti.verify()
         kwargs['lti'] = the_lti
         old_user = g.user
         g.user = User.from_lti("canvas", 
                                session["pylti_user_id"], 
                                session.get("lis_person_contact_email_primary", ""),
                                session.get("lis_person_name_given", "Canvas"),
                                session.get("lis_person_name_family", "User"))
         g.roles = session["roles"].split(",") if "roles" in session else []
         g.course = Course.from_lti("canvas", 
                                session["context_id"], 
                                session.get("context_title", ""), 
                                g.user.id)
         session['lti_course'] = g.course.id
         g.user.update_roles(g.roles, g.course.id)
         if old_user != g.user:
             flask_security.utils.logout_user()
             flask_security.utils.login_user(g.user, remember = True)
         if not old_user:
             flask_security.utils.login_user(g.user, remember = True)
     except LTIException as lti_exception:
         kwargs['lti'] = None
         kwargs['lti_exception'] = dict()
         kwargs['lti_exception']['exception'] = lti_exception
         kwargs['lti_exception']['kwargs'] = kwargs
         kwargs['lti_exception']['args'] = args
         flash("LTI Error: "+str(lti_exception)+".\nTry reloading!")
     return function(*args, **kwargs)
Ejemplo n.º 3
0
def ensure_canvas_arguments():
    '''
    Translates the current session data into a valid user
    '''
    user = User.from_lti("canvas", session["pylti_user_id"],
                         session.get("lis_person_contact_email_primary", ""),
                         session.get("lis_person_name_given", "Canvas"),
                         session.get("lis_person_name_family", "User"))
    if "roles" in session:
        roles = session["roles"].split(",")
    else:
        roles = []
    course = Course.from_lti("canvas", session["context_id"],
                             session.get("context_title", ""), user.id)
    return user, roles, course
Ejemplo n.º 4
0
def ensure_canvas_arguments():
    '''
    Translates the current session data into a valid user
    '''
    user = User.from_lti("canvas", 
                         session["pylti_user_id"], 
                         session.get("lis_person_contact_email_primary", ""),
                         session.get("lis_person_name_given", "Canvas"),
                         session.get("lis_person_name_family", "User"))
    if "roles" in session:
        roles = session["roles"].split(",")
    else:
        roles = []
    course = Course.from_lti("canvas", 
                             session["context_id"], 
                             session.get("context_title", ""), 
                             user.id)
    return user, roles, course