def report(id): review = Review.query.get_or_404(str(id)) if review.is_hidden and not current_user.is_admin(): raise NotFound(gettext("Review has been hidden.")) if review.user == current_user: flash.error(gettext("You cannot report your own review.")) return redirect(url_for('.entity', id=id)) if current_user.is_blocked: flash.error( gettext("You are not allowed to report this review because " "your account has been blocked by a moderator.")) return redirect(url_for('.entity', id=id)) last_revision_id = review.last_revision.id count = SpamReport.query.filter_by(user=current_user, revision_id=last_revision_id).count() if count > 0: flash.error(gettext("You have already reported this review.")) return redirect(url_for('.entity', id=id)) form = ReviewReportForm() if form.validate_on_submit(): SpamReport.create(last_revision_id, current_user, form.reason.data) flash.success(gettext("Review has been reported.")) return redirect(url_for('.entity', id=id)) return render_template('review/report.html', review=review, form=form)
def report(id): review = Review.query.get_or_404(str(id)) if review.is_hidden and not current_user.is_admin(): raise NotFound(gettext("Review has been hidden.")) if review.user == current_user: flash(gettext("You cannot report your own review."), 'error') return redirect(url_for('.entity', id=id)) if current_user.is_blocked: flash(gettext("You are not allowed to report this review because " "your account has been blocked by a moderator."), 'error') return redirect(url_for('.entity', id=id)) last_revision_id = review.last_revision.id count = SpamReport.query.filter_by(user=current_user, revision_id=last_revision_id).count() if count > 0: flash(gettext("You have already reported this review."), 'error') return redirect(url_for('.entity', id=id)) form = ReviewReportForm() if form.validate_on_submit(): SpamReport.create(last_revision_id, current_user, form.reason.data) flash(gettext("Review has been reported."), 'success') return redirect(url_for('.entity', id=id)) return render_template('review/report.html', review=review, form=form)
def test_spam_report_creation(self): # There should be no spam reports initially. self.assertEqual(SpamReport.query.count(), 0) report = SpamReport.create(self.review.last_revision.id, self.reporter, "Testing Reason") all_reports = SpamReport.query.all() self.assertEqual(len(all_reports), 1) self.assertEqual(all_reports[0].user_id, report.user_id) self.assertEqual(all_reports[0].revision_id, report.revision_id) # Let's try to add spam report using the author. This shouldn't be allowed. SpamReport.create(self.review.last_revision.id, self.author, "Testing Reason") self.assertEqual(len(all_reports), 1) # hence count is the same as before
def review_spam_report_handler(review_id, user): """Create spam report for a specified review. **OAuth scope:** vote :resheader Content-Type: *application/json* """ review = Review.query.get_or_404(str(review_id)) if review.is_hidden: raise NotFound("Review has been hidden.") if review.user_id == user.id: raise InvalidRequest('own') SpamReport.create(review, user) return jsonify(message="Spam report created successfully")
def review_spam_report_handler(review_id, user): """Create spam report for a specified review. **OAuth scope:** vote :resheader Content-Type: *application/json* """ review = Review.query.get_or_404(str(review_id)) if review.is_hidden: raise NotFound("Review has been hidden.") if review.user_id == user.id: raise InvalidRequest('own') SpamReport.create(review, user) return jsonify(message="Spam report created successfully")
def setUp(self): super(UserTestCase, self).setUp() self.user1 = User( db_users.get_or_create('tester_1', new_user_data={ "display_name": "test", })) self.user2 = User( db_users.get_or_create("тестер", new_user_data={ "display_name": "test1", })) self.author = User( db_users.get_or_create("author1", new_user_data={ "display_name": "Author1", })) license = License(id='Test', full_name='Test License') db.session.add(license) db.session.commit() self.review = Review.create( release_group='e7aad618-fa86-3983-9e77-405e21796eca', text="Testing!", user_id=self.author.id, is_draft=False, license_id=license.id, ) vote = db_vote.submit(self.user1.id, self.review.last_revision.id, True) self.review_created = self.review.last_revision.timestamp self.review_id = self.review.id self.revision_id = self.review.last_revision.id self.report = SpamReport.create(self.revision_id, self.user1.id, "Testing Reason Report")
def test_spam_report_deletion(self): report = SpamReport.create(self.review.last_revision.id, self.reporter, "Testing Reason") self.assertEqual(SpamReport.query.count(), 1) report.delete() self.assertEqual(SpamReport.query.count(), 0)