def edit_share(request,share): if share.owner != request.user and not request.user.is_superuser: return HttpResponseForbidden('Only share owners or admins may edit a share') if request.method == 'POST': form = ShareForm(request.user,request.POST,instance=share) if form.is_valid(): share = form.save(commit=False) share.set_tags(form.cleaned_data['tags'].split(',')) return HttpResponseRedirect(reverse('list_directory',kwargs={'share':share.slug_or_id})) else: tags = ','.join([tag.name for tag in share.tags.all()]) form = ShareForm(request.user,instance=share) form.fields['tags'].initial = tags return render(request, 'share/edit_share.html', {'form': form})
def share(file_id): #assuming file_id is given file = Files.query.filter_by(id=file_id).first() # form = dict() # form['recipient_email'] = [] # form['body'] = request.form['message'] # form['subject'] = request.form['subject'] # t = request.form['email'].replace(' ','') # form['recipient_email'] = t.split(',') # print(form) # mail_func(form,file.data) form_data = ShareForm() if form_data.validate_on_submit(): form = dict() form['recipient_email'] = [] form['body'] = form_data.message.data form['subject'] = form_data.subject.data t1 = form_data.email.data t = t1.replace(' ', '') form['recipient_email'] = t.split(',') for emailid in form['recipient_email']: user = User.query.filter_by(email=emailid).first() print(type(user)) if user is not None: file.mapping.append(user) db.session.commit() print(form) mail_func(form, file.data) return redirect(url_for('login')) return render_template('share.html', title='SHARE', current_user=current_user, data=getdata(current_user.user_id), form_data=form_data)
def share(file_id): # assuming file_id is given file = Files.query.filter_by(id=file_id).first() form_data = ShareForm() if form_data.validate_on_submit(): form = dict() form['recipient_email'] = [] form['body'] = form_data.message.data form['subject'] = form_data.subject.data t1 = form_data.email.data t = t1.replace(' ', '') form['recipient_email'] = t.split(',') for emailid in form['recipient_email']: user = User.query.filter_by(email=emailid).first() print(type(user)) if user is not None: file.mapping.append(user) db.session.commit() credentials = google.oauth2.credentials.Credentials( **flask.session['credentials']) service = build('gmail', 'v1', credentials=credentials) sendInst = send_email.send_email(service) message = sendInst.create_message_with_attachment(form, file.data) print(sendInst.send_message('me', message)) return redirect(url_for('account')) return render_template('share.html', title='SHARE', current_user=current_user, data=getdata(current_user.user_id), form_data=form_data)
def wishlist(userid): # file_folder = app.config['UPLOAD_FOLDER'] form = NewItemForm() form2 = ShareForm() form3 = LoginForm() if request.method == "POST": if form.validate_on_submit(): # generate item id id = str(uuid.uuid4().fields[-1])[:8] # get data from form title = form.title.data description = form.description.data webaddress = form.webaddress.data thumbnail = request.form['thumbnail'] # retrieve item from database item = WishlistItem.query.filter_by( title=title, owner=current_user.get_id()).first() # if the item already exists then flash error message and redirect back to the wishlist page if item is not None: flash('' + title + ' already exists in your wishlist', 'danger') return redirect( url_for('wishlist', userid=current_user.get_id())) # create wishlist object item = WishlistItem(id=id, owner=current_user.get_id(), title=title, description=description, webaddress=webaddress, thumbnail=thumbnail) # insert item into WishlistItem db.session.add(item) db.session.commit() flash('' + title + ' was added to your wishlist', 'success') # redirect user to their wishlist page return redirect(url_for("wishlist", userid=current_user.get_id())) else: # flash message for failed item addition flash('Invalid item data, please try again', 'danger') # redirect user to their wishlist page return redirect(url_for("wishlist", userid=current_user.get_id())) else: # retrieve user wishlist items from database items = WishlistItem.query.filter_by(owner=current_user.get_id()).all() return render_template("wishlist.html", userid=current_user.get_id(), form=form, form2=form2, form3=form3, items=items)
def add_ad(request): """ >>> a = 'a' >>> a a """ if request.method == 'POST': form = ShareForm(request.POST, request.FILES) if form.is_valid(): new_ad = form.save(commit=False) new_ad.user = request.user.profile new_ad.status = 'A' new_ad.save() return HttpResponseRedirect('/ads/') else: form = ShareForm() return render_to_response('share/add_ad.html', {'form': form}, context_instance=RequestContext(request))
def edit_ad(request, pk): ad = Share.objects.get(pk=pk) if request.method == 'POST': form = ShareForm(request.POST, request.FILES, instance = ad) if form.is_valid(): form.save() user = Userprofile.objects.get(user = request.user) user_adds = user.share_set.all() return render_to_response('userprofile/index.html', {'user' : user, 'user_adds': user_adds, }, context_instance=RequestContext(request)) else: form = ShareForm(instance = ad) return render_to_response( 'share/add_ad.html', {'form': form}, context_instance=RequestContext(request) )
def sharesetup(user): form = ShareForm() if request.form.get('bar', None) == 'Share/Unshare': if form.validate_on_submit(): shareuser = form.shareuser.data if shareuser != user.nickname: sharepath = settings.WORKING_DIR + shareuser shareuserdb = User.query.filter_by(nickname=shareuser).first() sharedname = user.nickname + "Repo" currentRepo = shareuserdb.repos.filter_by(repourl="/" + sharedname + "/").first() if currentRepo is None: existing = False for sub in os.listdir(sharepath): if sub == sharedname: existing = True if not existing: repo = Repo(settings.REMOTE_DIR + user.nickname) os.system("sudo mkdir " + sharepath + "/" + sharedname) working_repo = repo.clone(sharepath + "/" + sharedname , False, False, "origin") p = subprocess.Popen(["sudo", "git", "remote", "add", "origin", "file:///" + settings.REMOTE_DIR + user.nickname + "/"], cwd=sharepath + "/" + sharedname) p.wait() newrepo = Rpstry(repourl="/" + sharedname + "/", owner=shareuserdb) db.session.add(newrepo) db.session.commit() password = '' searchfile = open(settings.REMOTE_DIR + shareuser + "/.htpasswd", "r") for line in searchfile: exactuser = re.compile("^" + shareuser + ":(.)*$") if exactuser.match(line): password = line searchfile.close() open(settings.REMOTE_DIR + user.nickname + "/.htpasswd", 'a').writelines(password) flash("Shared with: " + shareuser, 'info') else: searchfile = open(settings.REMOTE_DIR + user.nickname + "/.htpasswd", "r") lines = searchfile.readlines() searchfile.close() f = open(settings.REMOTE_DIR + user.nickname + "/.htpasswd","w") for line in lines: exactuser = re.compile("^" + shareuser + ":(.)*$") if not exactuser.match(line): f.write(line) f.close() db.session.delete(currentRepo) db.session.commit() flash("Unshared with: " + shareuser, 'info') else: flash("User does not exist", 'error') return form
def sharewishlist(userid): import smtplib form = ShareForm() form2 = LoginForm() if request.method == "POST": if form.validate_on_submit() and form2.validate_on_submit(): from_addr = current_user.email to_addr = form.recipientemail.data from_name = current_user.first_name + ' ' + current_user.last_name to_name = form.name.data subject = 'My Wishlist!' message = """ From: {} <{}> To: {} <{}> Subject: {} {} """ # gets item form database items = WishlistItem.query.filter_by( owner=current_user.get_id()).all() message_body = 'This is my wishlist' for item in items: message_body += "\n-->" + item.title message_to_send = message.format(from_name, from_addr, to_name, to_addr, subject, message_body) # Credentials (if needed) username = form2.email.data password = form2.password.data # The actual mail send server = smtplib.SMTP('smtp.gmail.com:587') server.starttls() server.login(username, password) server.sendmail(from_addr, to_addr, message_to_send) server.quit() flash('Wishlist was Shared to ' + to_name, 'success') else: flash('Invalid sharing data, please try again', 'danger') return redirect(url_for("wishlist", userid=current_user.get_id())) return redirect(url_for("wishlist", userid=current_user.get_id()))
def create_share(request,group_id=None): if not request.user.has_perm('bioshareX.add_share'): return render(request,'index.html', {"message": "You must have permissions to create a Share. You may request access from the <a href=\"mailto:[email protected]\">webmaster</a>."}) group = None if not group_id else Group.objects.get(id=group_id) if request.method == 'POST': form = ShareForm(request.user,request.POST) if form.is_valid(): share = form.save(commit=False) if not getattr(share, 'owner',None): share.owner=request.user try: share.save() share.set_tags(form.cleaned_data['tags'].split(',')) except Exception, e: share.delete() return render(request, 'share/new_share.html', {'form': form,'group':group, 'error':e.message}) if group: assign_perm(Share.PERMISSION_VIEW,group,share) assign_perm(Share.PERMISSION_DOWNLOAD,group,share) return HttpResponseRedirect(reverse('list_directory',kwargs={'share':share.slug_or_id}))
if form.is_valid(): share = form.save(commit=False) if not getattr(share, 'owner',None): share.owner=request.user try: share.save() share.set_tags(form.cleaned_data['tags'].split(',')) except Exception, e: share.delete() return render(request, 'share/new_share.html', {'form': form,'group':group, 'error':e.message}) if group: assign_perm(Share.PERMISSION_VIEW,group,share) assign_perm(Share.PERMISSION_DOWNLOAD,group,share) return HttpResponseRedirect(reverse('list_directory',kwargs={'share':share.slug_or_id})) else: form = ShareForm(request.user) return render(request, 'share/new_share.html', {'form': form,'group':group}) @safe_path_decorator(path_param='subdir') @share_access_decorator(['admin']) def create_subshare(request,share,subdir): path = os.path.join(share.get_path(),subdir) if not os.path.exists(path): return render(request,'index.html', {"message": "Unable to create share. The specified path does not exist."}) if request.method == 'POST': form = SubShareForm(request.POST) if form.is_valid(): subshare = form.save(commit=False) subshare.owner = request.user subshare.link_to_path = path subshare.sub_directory = subdir