Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if command == "generate-mails-for-batch":
data = json_decode(sys.stdin.readline())
batch_id = data["batch_id"]
was_accepted = data["was_accepted"]
is_accepted = data["is_accepted"]
pending_mails = reviewing.utils.generateMailsForBatch(db, batch_id, was_accepted, is_accepted)
elif command == "generate-mails-for-assignments-transaction":
data = json_decode(sys.stdin.readline())
transaction_id = data["transaction_id"]
pending_mails = reviewing.utils.generateMailsForAssignmentsTransaction(db, transaction_id)
elif command == "apply-filters":
data = json_decode(sys.stdin.readline())
filters = reviewing.filters.Filters()
user = dbutils.User.fromId(db, data["user_id"]) if "user_id" in data else None
if "review_id" in data:
review = dbutils.Review.fromId(db, data["review_id"])
filters.setFiles(db, review=review)
filters.load(db, review=review, user=user,
added_review_filters=data.get("added_review_filters", []),
removed_review_filters=data.get("removed_review_filters", []))
else:
repository = gitutils.Repository.fromId(db, data["repository_id"])
filters.setFiles(db, file_ids=data["file_ids"])
filters.load(db, repository=repository, recursive=data.get("recursive", False), user=user)
sys.stdout.write(json_encode(filters.data) + "\n")
elif command == "generate-custom-mails":
pending_mails = []
for data in json_decode(sys.stdin.readline()):
from_user = dbutils.User.fromId(db, data["sender"])
if data.get("recipients"):
recipients = [dbutils.User.fromId(db, user_id)
for user_id in data["recipients"]]
if path[0] == '/':
full_path = path
if path != "/": path = path[1:]
else:
full_path = "/" + path
if not path: path = "/"
if review_id is None:
review = None
repository_arg = req.getParameter("repository", "")
if repository_arg:
repository = gitutils.Repository.fromParameter(db, repository_arg)
else:
repository = gitutils.Repository.fromSHA1(db, sha1)
else:
review = dbutils.Review.fromId(db, review_id)
repository = review.repository
document = htmlutils.Document(req)
html = document.html()
head = html.head()
body = html.body()
extra_links = []
if review:
extra_links.append(("r/%d" % review.id, "Back to Review"))
page.utils.generateHeader(body, db, user, extra_links=extra_links)
document.addExternalStylesheet("resource/showtree.css")
def generateMailsForBatch(db, batch_id, was_accepted, is_accepted, profiler=None):
cursor = db.cursor()
cursor.execute("SELECT review, uid FROM batches WHERE id=%s", (batch_id,))
review_id, user_id = cursor.fetchone()
review = dbutils.Review.fromId(db, review_id)
from_user = dbutils.User.fromId(db, user_id)
pending_mails = []
recipients = review.getRecipients(db)
for to_user in recipients:
pending_mails.extend(mail.sendReviewBatch(db, from_user, to_user, recipients, review, batch_id, was_accepted, is_accepted, profiler=profiler))
return pending_mails
document = htmlutils.Document(req)
html = document.html()
head = html.head()
body = html.body()
document.addExternalStylesheet("resource/showbranch.css")
def renderCreateReview(target):
if not user.isAnonymous() and branch and branch.review is None and not rebased:
url = htmlutils.URL("/createreview", repository=repository.id, branch=branch_name)
target.a("button", href=url).text("Create Review")
if review_id is not None:
review = dbutils.Review.fromId(db, review_id)
else:
review = None
if review:
extra_links = [("r/%d" % review.id, "Back to Review")]
document.addInternalScript(review.getJS())
else:
extra_links = []
page.utils.generateHeader(body, db, user, renderCreateReview, extra_links=extra_links)
document.addInternalScript(branch.getJS())
title_right = None
if rebased:
def process(self, db, user, review_id):
review = dbutils.Review.fromId(db, review_id)
reviewing.utils.applyFilters(db, user, review, parentfilters=True)
return OperationResult()
review_id = row[0]
cursor.execute("""SELECT id, old_head, old_upstream, new_upstream, uid, branch
FROM reviewrebases
WHERE review=%s AND new_head IS NULL""",
(review_id,))
row = cursor.fetchone()
if row:
if tracked_branch:
raise IndexException("Refusing to perform a review rebase via an automatic update.")
rebase_id, old_head_id, old_upstream_id, new_upstream_id, rebaser_id, onto_branch = row
review = dbutils.Review.fromId(db, review_id)
rebaser = dbutils.User.fromId(db, rebaser_id)
if rebaser.id != user.id:
if user.isSystem():
user = rebaser
else:
raise IndexException("""\
This review is currently being rebased by
%s <%s>
and can't be otherwise updated right now.""" % (rebaser.fullname, rebaser.email))
old_head = gitutils.Commit.fromId(db, repository, old_head_id)
old_commitset = log.commitset.CommitSet(review.branch.getCommits(db))
if old_head.sha1 != old:
raise IndexException("""\
if recipientfilters is not None:
cursor.executemany(
"""INSERT INTO reviewrecipientfilters (review, uid, include)
VALUES (%s, %s, %s)""",
[(review.id, filter_user_id, filter_include)
for filter_user_id, filter_include in recipientfilters])
for filter_user_id, filter_include in recipientfilters:
if filter_user_id is None and not filter_include:
is_opt_in = True
addCommitsToReview(db, user, review, commits, new_review=True)
# Reload to get list of changesets added by addCommitsToReview().
review = dbutils.Review.fromId(db, review.id)
pending_mails = []
recipients = review.getRecipients(db)
for to_user in recipients:
pending_mails.extend(mail.sendReviewCreated(db, user, to_user, recipients, review))
if not is_opt_in:
recipient_by_id = dict((to_user.id, to_user) for to_user in recipients)
cursor.execute("""SELECT userpreferences.uid, userpreferences.repository,
userpreferences.filter, userpreferences.integer
FROM userpreferences
LEFT OUTER JOIN filters ON (filters.id=userpreferences.filter)
WHERE userpreferences.item='review.defaultOptOut'
AND userpreferences.uid=ANY (%s)
AND (userpreferences.filter IS NULL