Ejemplo n.º 1
0
def userinfo(request):
    context = initialize_context(request)
    token = get_token(request)
    print('TOKEN', token)
    user = get_user(token)
    #print(context['user'])

    return render(request, 'tutorial/userinfo.html', context)
Ejemplo n.º 2
0
def callback(request):
    expected_state = request.session.pop('auth_state', '')
    token = get_token_from_code(request.get_full_path(), expected_state)

    user = get_user(token)

    store_token(request, token)
    store_user(request, user)

    return HttpResponseRedirect(reverse('home'))
def callback(request):
    """
    Signin Callback Response
    """
    expected_state = request.session.pop("auth_state", "")
    token = get_token_from_code(request.get_full_path(), expected_state)
    user = get_user(token)
    store_token(request, token)
    store_user(request, user)    
    return HttpResponseRedirect(reverse("home"))
Ejemplo n.º 4
0
def callback(request):
    # Get the state saved in session
    expected_state = request.session.pop('auth_state', '')
    # Make the token request

    token = get_token_from_code(request.get_full_path(), expected_state)
    # Get the user's profile
    user = get_user(token)
    # #Get nylas code
    api_client = APIClient(app_id="57j65z6aezdxuocajwwegvkyx",
                           app_secret="du2z08iomhm6remzvzyhk8bz9")
    response_body = {
        "client_id": api_client.app_id,
        "name": user['givenName'],
        "email_address": user['mail'],
        "provider": "office365",
        "settings": {
            "microsoft_client_id": settings['app_id'],
            "microsoft_client_secret": settings['app_secret'],
            "microsoft_refresh_token": token['refresh_token'],
            "redirect_uri": settings['redirect'],
        },
        "scopes": "email.read_only,calendar"
    }
    nylas_authorize_resp = requests.post(
        "https://api.nylas.com/connect/authorize", json=response_body)

    nylas_code = nylas_authorize_resp.json()["code"]

    # Get nylas access_token

    nylas_token_data = {
        "client_id": api_client.app_id,
        "client_secret": api_client.app_secret,
        "code": nylas_code,
    }

    nylas_token_resp = requests.post("https://api.nylas.com/connect/token",
                                     json=nylas_token_data)

    if not nylas_token_resp.ok:
        message = nylas_token_resp.json()["message"]
        return requests.Response('Bad Request')

    nylas_access_token = nylas_token_resp.json()["access_token"]

    print(nylas_access_token)

    # Save token and user
    store_token(request, token)
    store_user(request, user)

    return HttpResponseRedirect(reverse('home'))
Ejemplo n.º 5
0
def callback(request):
  # Get the state saved in session
  expected_state = request.session.pop('auth_state', '')
  # Make the token request
  token = get_token_from_code(request.get_full_path(), expected_state)

  # Get the user's profile
  user = get_user(token)

  # Save token and user
  store_token(request, token)
  store_user(request, user)

  return HttpResponseRedirect(reverse('home'))
Ejemplo n.º 6
0
def callback(request):
  # Get the state saved in session
  expected_state = request.session.pop('auth_state', '')
  # Make the token request
  token = get_token_from_code(request.get_full_path(), expected_state)

  # Get the user's profile
  user = get_user(token)

  try:
    print("Found", Junta.objects.get(user__email=user['mail']))
  except:
    print(Junta.objects.get(user__email='*****@*****.**'))

  # Save token and user
  store_token(request, token)
  store_user(request, user)

  return HttpResponseRedirect(reverse('home'))
Ejemplo n.º 7
0
def callback(request):
    # Get the state saved in session
    expected_state = request.session.pop('auth_state', '')
    # Make the token request
    token = get_token_from_code(request.get_full_path(), expected_state)
    # Get the user's profile
    user = get_user(token)

    # Get user info
    # user attribute like displayName,surname,mail etc. are defined by the
    # institute incase you are using single-tenant. You can get these
    # attribute by exploring Microsoft graph-explorer.

    fullname = user['displayName']
    split_name = fullname.split(' ')
    first_name = split_name[2]
    last_name = split_name[0]
    first_name = first_name.lower().title()
    last_name = last_name.lower().title()

    username = user['displayName']
    password = user['surname']
    email = user['mail']

    try:
        # if use already exist
        user = User.objects.get(username=username)

    except User.DoesNotExist:
        # if user does not exist then create a new user
        user = User.objects.create_user(username, email, password)
        user.first_name = first_name
        user.last_name = last_name
        user.save()

    user = authenticate(username=username, password=password)

    if user is not None:
        login(request, user)
        messages.success(request, "Success: You were successfully logged in.")
        return redirect('home')
    return redirect('home')
Ejemplo n.º 8
0
def updatemeeting(token):
    # 将新会议添加到数据库中
    meetinglists = []

    data123 = get_user(token)  #发送邮件

    events = get_calendar_events(token)  #获取meetinginfo近两天的会议记录
    bjevents = get_bj_events(token)  #获取北京会议室近两天的会议记录
    hzevents = get_hz_events(token)  #获取杭州会议室近两天的会议记录
    kmevents = get_km_events(token)  #获取昆明会议室近两天的会议记录
    hpyevents = get_hpy_events(token)  #获取Happyroom近两天的会议记录
    njevents = get_nanj_events(token)  # 获取南京会议室近两天的会议记录
    qdevents = get_qd_events(token)  # 获取青岛会议室近两天的会议记录
    qhevents = get_qh_events(token)  # 获取情海会议室近两天的会议记录
    syevents = get_sanya_events(token)  # 获取三亚会议室近两天的会议记录
    scevents = get_sc_events(token)  # 获取四川会议室近两天的会议记录
    trnevents = get_trn_events(token)  # 获取training会议室近两天的会议记录
    vcevents = get_vc_events(token)  # 获取VideoCenter会议室近两天的会议记录
    bigevents = get_big_events(token)  # 获取VideoRoom会议室近两天的会议记录
    wlqevents = get_wlq_events(token)  # 获取乌鲁木齐近两天的会议记录
    xaevents = get_xa_events(token)  # 获取西安会议室近两天的会议记录
    meetinglists.append(events)
    meetinglists.append(bjevents)
    meetinglists.append(hzevents)
    meetinglists.append(hpyevents)
    meetinglists.append(kmevents)
    meetinglists.append(njevents)
    meetinglists.append(qdevents)
    meetinglists.append(qhevents)
    meetinglists.append(syevents)
    meetinglists.append(scevents)
    meetinglists.append(trnevents)
    meetinglists.append(vcevents)
    meetinglists.append(bigevents)
    meetinglists.append(wlqevents)
    meetinglists.append(xaevents)
    for i in range(0, len(meetinglists)):
        try:
            newevents(meetinglists[i], token)
        except Exception as e:
            print(e)
Ejemplo n.º 9
0
def calendar(request):
    context = initialize_context(request)
    token = get_token(request)
    events = get_calendar_events(token)
    user = get_user(token)
    mail = user.get('mail')
    # meeting = schedule_meeting(token)
    # print(meeting)
    # print(user, '\n\n\n\n\n')

    if events:
        # Convert the ISO 8601 date times to a datetime object
        # This allows the Django template to format the value nicely
        count = 0

        for event in events['value']:
            start_key = event.get('start')
            start_key = start_key.get('dateTime')
            date_fixed = start_key.split('T')[0]
            date_fixed = str(datetime.strptime(date_fixed, '%Y-%m-%d'))
            date_fixed = date_fixed.split(" ")[0]
            todays_date = str(datetime.today())
            todays_date = todays_date.split(" ")[0]
            organizer = event.get('organizer')
            organizer = organizer.get('emailAddress')
            organizer = organizer.get('address')
            # print(organizer, mail)
            # print(event)
            event_info = json.dumps(event,
                                    indent=4,
                                    sort_keys=True,
                                    default=str)
            json_info = json.loads(event_info)
            attendees = json_info['attendees']
            html = json_info['body']
            soup = BeautifulSoup(html['content'], "html.parser")
            [s.extract() for s in soup(['head', 'title'])]
            visible_text = soup.getText()
            if 'Skype' in visible_text:
                if mail == organizer:
                    # print(event)
                    if date_fixed > todays_date:
                        event['start']['dateTime'] = dateutil.parser.parse(
                            event['start']['dateTime'])
                        event['end']['dateTime'] = dateutil.parser.parse(
                            event['end']['dateTime'])
                        count += 1
                        context['events'] = events['value']
                        # print(json.dumps(event, indent=4, sort_keys=True, default=str))
                else:
                    event['subject'] = None
                    event['organizer'] = None
            else:
                if count < 1:
                    request.session['flash_error'] = {
                        'message': 'No new meeting found by your name.',
                        'debug': 'No new meetings.'
                    }
                else:
                    pass

    return render(request, 'tutorial/calendar.html', context)