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']}))
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)
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'])
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)
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'])
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',{}))
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), })