コード例 #1
0
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})
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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))
コード例 #6
0
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)
    )
コード例 #7
0
ファイル: views.py プロジェクト: MadAd360/GoGramming
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
コード例 #8
0
ファイル: views.py プロジェクト: kimarhenry/info3180-project2
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()))
コード例 #9
0
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}))
コード例 #10
0
        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