Пример #1
0
def piles():
    if request.GET.get('email') == '!currentuser':
        s = session(request)
        if s.get('authenticated'):
            return ms2js(s['authenticated']['piles'])
    elif request.GET.get('name'):
        return ms2js(db.piles.find({'name':request.GET['name']}))
Пример #2
0
def piles_put(pid):
    
    data = request.body_.read()
    entity = j2m(data)

    if not entity.get('emails'):
        abort(400, 'No emails associated with pile')
    if not entity.get('name'):
        abort(400, 'No name associated with pile')
        
    valid,badness = valid_chars(entity['name'])
    if not valid:
        abort(400, "Not a valid name. You can't use the characters %s" % badness)
        
    try:
        db.piles.save(entity)
    except ValidationError as ve:
        abort(400, str(ve))
        
    #print "The new pile entity being saved: %s" % entity
    s = session(request)
    #for i,p in enumerate(s['authenticated']['piles']):
    #   if p['_id'] == pid:
    #       s['authenticated']['piles'][i] = entity
    #       s.save()
    #print 'New auth piles: %s' % s['authenticated']['piles']
    
    do_login(request,s['authenticated']['user']) # <-- This is a pretty lame hack, but wtf? I cant figure this shit out
        
    return m2j(entity)
Пример #3
0
def front():
    s = session(request)
    authed = s.get('authenticated')
    if not authed:
        return redirect('/login')
    pile = authed['piles'][0]
    if not pile:
        return abort(404,'Your user account (%s) does not have a Pile associated with it. Please report this error!' % user_ent['email'])
    return redirect('http://'+settings('CONTENT_DOMAIN') +'/app#'+pile['name'])
Пример #4
0
def update_trello():

    session = auth.session()
    raw_calendar_data = scalendar.get_scele_calendar_data(session)
    scele_events = scalendar.get_scele_events(raw_calendar_data)

    trello_cards = trello.get_all_cards()
    trello_card_names = trello.get_trello_card_names(trello_cards)
    trello_new_cards = trello.get_new_trello_cards(
        trello_card_names, scele_events)
    trello.post_new_cards(trello_new_cards)
Пример #5
0
def verify():
    code = request.GET.get('code')
    email = request.GET.get('email')
    if not code or not email:
        return template('verify',code='Verification Code',email='Email',errors=['Enter a valid code and email address'])
    
    verify = db.verifies.find_one({'code':code,'email':email})
    if verify:
        s = session(request)
        if not s.get('messages'):
            s['messages'] = []
        s['messages'].append('Email verified.')
        return redirect('/')
    else:
        return template('verify',code=code,email=email,errors=['Enter a valid code and email address'])
Пример #6
0
def pile(pilename):
    
    pile = db.piles.find_one({'name':pilename})
    if not pile:
        abort(404,'That Pile does not exist.')
    
    s = session(request)
    if s.get('authenticated') and not request.GET.get('public'):
        authed_piles = [ p['_id'] for p in s['authenticated']['piles'] ]
        if pile['_id'] in authed_piles:
            return redirect('http://'+settings('CONTENT_DOMAIN') +'/app#'+pile['name'])
            #files = db.files.find({'pid':pile['_id']})
            #return template('app',{'pile':pile,'files':files,'app_meta':app_meta()})
    
    files = db.files.find({'pid':pile['_id'],'pub':True})
    return template('app_public',pile=pile,files=list(files),authenticated=s.get('authenticated',{}))
Пример #7
0
def usage(pilename):
    pile = db.piles.find_one({'name':pilename})
    if not pile:
        abort(404,'That Pile does not exist.')
    
    s = session(request)
    
    if not s.get('authenticated') or request.GET.get('public'):
        return redirect('/'+pilename)
    
    authed_piles = [p['_id'] for p in s['authenticated']['piles']]
    thispid = pile['_id']
    if thispid not in authed_piles:
        return redirect('/'+pilename)
        
        
    print "Display usage for %s" % pile
    um = UsageMeter()
    
    ### Usage
    # Grab DAILY usage data
    usage_dailies = um.usage_dailies(thispid)
    usage_dailies_puts = []
    usage_dailies_gets = []
    for u in usage_dailies:
        if u['op'] == 'PUT':
            usage_dailies_puts.append(u)
        elif u['op'] == 'GET':
            usage_dailies_gets.append(u)
    
    ### Storage
    # Grab DAILY storage data
    storage_dailies = um.storage_dailies(thispid)
    
    # Get the pile's files
    files = db.files.find({'pid':pile['_id']})
    
    return template('usage',{
            'pile':pile,
            'files':files, 
            'usage_dailies_puts':usage_dailies_puts,
            'usage_dailies_gets':usage_dailies_gets,
            'storage_dailies':storage_dailies,
            'summary':um.summary(thispid),
        })