def create(request): if not request.is_xhr: if request.method == 'POST': p = Project() factories = {'active': bool, 'featured': bool, 'tags': lambda x: x.split(' ')} keys = ( 'active', 'featured', 'tags' , 'category', 'name', 'text', 'preview_small', 'preview_big' , 'download_mac', 'download_pc') p['id'] = make_id(request.form.get('name')) for k in keys: v = request.form.get(k) p[k] = (factories[k](v) if k in factories else v) resp = Project.create(p) return redirect(url_for('update', docid=p['id'])) elif request.method == 'GET': context = { 'project': {}, 'user': { 'roles': request.session.get('roles', []) }, 'debug': request.debug } return render_html('projects/create.html', context)
def uploadAttachment(request, docid): if request.method == 'POST': doc = Project.db.get(docid) for file in request.files: Project.db.add_attachment(doc, request.files[file].read(), request.files[file].filename, content_type=request.files[file].content_type) return redirect(url_for('update', docid=docid))
def logout(request): """docstring for logout""" sid = request.session.get('id', None) if sid: user = tuple(User.db.view('session/users', key=sid))[0]['value'] user.pop('session') User.db.save(user) red = redirect(url_for('index')) red.delete_cookie('com.kinaj.session') return red
def login(request): """docstring for login""" if request.method == 'GET': context = {'referrer': request.args.get('referrer', url_for('index'))} return render_html('users/login.html', context) elif request.method == 'POST': username = request.form.get('username') password = request.form.get('password') user = User.db.get(username) if user and User.chkpwd(password, user['password']): request.session['id'] = uuid.uuid4().hex request.session['roles'] = user['roles'] or [] request.session['username'] = user['_id'] user['session'] = request.session user['last_login'] = time.time() User.update(user) red = redirect(request.args.get('referrer', url_for('index'))) return red context = { 'referrer': request.args['referrer'], 'user': { 'roles': request.session.get('roles', []) }, 'debug': request.debug } return render_html('users/login.html', context)
def deleteAttachment(request, docid, attachment): doc = Project.db.get(docid) Project.db.delete_attachment(doc, attachment) return redirect(url_for('update', docid=docid))
def delete(request,docid): if not request.is_xhr: Project.delete(docid) return redirect(url_for('plist'))