def test_creation(self):
     db_moderation_log.create(
         admin_id=self.admin.id,
         reason=self.reason,
         user_id=self.user.id,
         action=ACTION_BLOCK_USER,
     )
     logs, count = db_moderation_log.list_logs()
     self.assertEqual(count, 1)
     self.assertEqual(str(logs[0]["user"]["id"]), self.user.id)
     self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
Beispiel #2
0
def unhide(id):
    review = get_review_or_404(id)
    if not review["is_hidden"]:
        flash.info(gettext("Review is not hidden."))
        return redirect(url_for('.entity', id=review["id"]))

    form = AdminActionForm()
    if form.validate_on_submit():
        db_review.set_hidden_state(review["id"], is_hidden=False)
        db_moderation_log.create(admin_id=current_user.id, action=AdminActions.ACTION_UNHIDE_REVIEW,
                                 reason=form.reason.data, review_id=review["id"])
        flash.success(gettext("Review is not hidden anymore."))
        return redirect(url_for('.entity', id=review["id"]))

    return render_template('log/action.html', review=review, form=form, action=AdminActions.ACTION_UNHIDE_REVIEW.value)
    def test_list(self):
        # test logs for hiding review
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason=self.reason,
            review_id=self.review["id"],
            action=AdminActions.ACTION_HIDE_REVIEW,
        )
        logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
        self.assertEqual(count, 1)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["review"]["id"]), str(self.review["id"]))
        self.assertEqual(str(logs[0]["action"]),
                         AdminActions.ACTION_HIDE_REVIEW.value)

        # test logs for unhiding review
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason=self.reason,
            review_id=self.review["id"],
            action=AdminActions.ACTION_UNHIDE_REVIEW,
        )
        logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
        self.assertEqual(count, 2)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["review"]["id"]), str(self.review["id"]))
        self.assertEqual(str(logs[0]["action"]),
                         AdminActions.ACTION_UNHIDE_REVIEW.value)

        # test logs for blocking user
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason="User to be blocked",
            user_id=self.user.id,
            action=AdminActions.ACTION_BLOCK_USER,
        )
        logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
        self.assertEqual(count, 3)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["user"]["id"]), self.user.id)
        self.assertEqual(str(logs[0]["action"]),
                         AdminActions.ACTION_BLOCK_USER.value)

        # test logs for unblocking user
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason="User to be unblocked",
            user_id=self.user.id,
            action=AdminActions.ACTION_UNBLOCK_USER,
        )
        logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
        self.assertEqual(count, 4)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["user"]["id"]), self.user.id)
        self.assertEqual(str(logs[0]["action"]),
                         AdminActions.ACTION_UNBLOCK_USER.value)
Beispiel #4
0
def hide(id):
    review = get_review_or_404(id)
    if review["is_hidden"]:
        flash.info(gettext("Review is already hidden."))
        return redirect(url_for('.entity', id=review["id"]))

    form = AdminActionForm()
    if form.validate_on_submit():
        db_review.set_hidden_state(review["id"], is_hidden=True)
        db_moderation_log.create(admin_id=current_user.id, action=ACTION_HIDE_REVIEW,
                                 reason=form.reason.data, review_id=review["id"])
        review_reports, count = db_spam_report.list_reports(review_id=review["id"])  # pylint: disable=unused-variable
        for report in review_reports:
            db_spam_report.archive(report["user_id"], report["revision_id"])
        flash.success(gettext("Review has been hidden."))
        return redirect(url_for('.entity', id=review["id"]))

    return render_template('log/action.html', review=review, form=form, action=ACTION_HIDE_REVIEW)
 def test_list(self):
     db_moderation_log.create(
         admin_id=self.admin.id,
         reason=self.reason,
         review_id=self.review["id"],
         action=ACTION_HIDE_REVIEW,
     )
     logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
     self.assertEqual(count, 1)
     self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
     db_moderation_log.create(
         admin_id=self.admin.id,
         reason="User to be blocked",
         user_id=self.user.id,
         action=ACTION_BLOCK_USER,
     )
     logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
     self.assertEqual(count, 2)
Beispiel #6
0
def unblock(user_id):
    user = db_users.get_by_id(user_id)
    if not user:
        raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id))

    if not user['is_blocked']:
        flash.info(gettext("This account is not blocked."))
        return redirect(url_for('user.reviews', user_id=user['id']))

    form = AdminActionForm()
    if form.validate_on_submit():
        db_users.unblock(user['id'])
        db_moderation_log.create(admin_id=current_user.id, action=AdminActions.ACTION_UNBLOCK_USER,
                                 reason=form.reason.data, user_id=user['id'])
        flash.success(gettext("This user account has been unblocked."))
        return redirect(url_for('user.reviews', user_id=user['id']))

    return render_template('log/action.html', user=user, form=form, action=AdminActions.ACTION_UNBLOCK_USER.value)
Beispiel #7
0
def block(user_id):
    user = db_users.get_by_id(user_id)
    if not user:
        raise NotFound("Can't find a user with ID: {user_id}".format(user_id=user_id))

    if user['is_blocked']:
        flash.info(gettext("This account is already blocked."))
        return redirect(url_for('user.reviews', user_id=user['id']))

    form = AdminActionForm()
    if form.validate_on_submit():
        db_users.block(user['id'])
        db_moderation_log.create(admin_id=current_user.id, action=ACTION_BLOCK_USER,
                                 reason=form.reason.data, user_id=user['id'])
        flash.success(gettext("This user account has been blocked."))
        return redirect(url_for('user.reviews', user_id=user['id']))

    return render_template('log/action.html', user=user, form=form, action=ACTION_BLOCK_USER)
    def test_list(self):
        # test logs for hiding review
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason=self.reason,
            review_id=self.review["id"],
            action=AdminActions.ACTION_HIDE_REVIEW,
        )
        logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
        self.assertEqual(count, 1)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["review"]["id"]), str(self.review["id"]))
        self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_HIDE_REVIEW.value)

        # test logs for unhiding review
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason=self.reason,
            review_id=self.review["id"],
            action=AdminActions.ACTION_UNHIDE_REVIEW,
        )
        logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
        self.assertEqual(count, 2)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["review"]["id"]), str(self.review["id"]))
        self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_UNHIDE_REVIEW.value)

        # test logs for blocking user
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason="User to be blocked",
            user_id=self.user.id,
            action=AdminActions.ACTION_BLOCK_USER,
        )
        logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
        self.assertEqual(count, 3)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["user"]["id"]), self.user.id)
        self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_BLOCK_USER.value)

        # test logs for unblocking user
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason="User to be unblocked",
            user_id=self.user.id,
            action=AdminActions.ACTION_UNBLOCK_USER,
        )
        logs, count = db_moderation_log.list_logs(admin_id=self.admin.id)
        self.assertEqual(count, 4)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["user"]["id"]), self.user.id)
        self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_UNBLOCK_USER.value)
    def test_creation(self):
        # test log creation when no review_id and no user_id is given
        with self.assertRaises(ValueError) as err:
            db_moderation_log.create(
                admin_id=self.admin.id,
                reason=self.reason,
                action=AdminActions.ACTION_HIDE_REVIEW,
            )
        self.assertEqual(str(err.exception),
                         "No review ID or user ID specified.")

        # test log creation for non existing action
        with self.assertRaises(ValueError) as err:
            db_moderation_log.create(
                admin_id=self.admin.id,
                reason=self.reason,
                user_id=self.user.id,
                action="unknown_action",
            )
        self.assertEqual(str(err.exception), "Please specify a valid action.")

        # test sample log creation for blocking user
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason=self.reason,
            user_id=self.user.id,
            action=AdminActions.ACTION_BLOCK_USER,
        )
        logs, count = db_moderation_log.list_logs()
        self.assertEqual(count, 1)
        self.assertEqual(str(logs[0]["user"]["id"]), self.user.id)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["action"]),
                         AdminActions.ACTION_BLOCK_USER.value)
    def test_creation(self):
        # test log creation when no review_id and no user_id is given
        with self.assertRaises(ValueError) as err:
            db_moderation_log.create(
                admin_id=self.admin.id,
                reason=self.reason,
                action=AdminActions.ACTION_HIDE_REVIEW,
            )
        self.assertEqual(str(err.exception), "No review ID or user ID specified.")

        # test log creation for non existing action
        with self.assertRaises(ValueError) as err:
            db_moderation_log.create(
                admin_id=self.admin.id,
                reason=self.reason,
                user_id=self.user.id,
                action="unknown_action",
            )
        self.assertEqual(str(err.exception), "Please specify a valid action.")

        # test sample log creation for blocking user
        db_moderation_log.create(
            admin_id=self.admin.id,
            reason=self.reason,
            user_id=self.user.id,
            action=AdminActions.ACTION_BLOCK_USER,
        )
        logs, count = db_moderation_log.list_logs()
        self.assertEqual(count, 1)
        self.assertEqual(str(logs[0]["user"]["id"]), self.user.id)
        self.assertEqual(str(logs[0]["admin"]["id"]), self.admin.id)
        self.assertEqual(str(logs[0]["action"]), AdminActions.ACTION_BLOCK_USER.value)