##// END OF EJS Templates
release: merge back stable branch into default
marcink -
r3622:cbe7f2f9 merge default
parent child Browse files
Show More
@@ -0,0 +1,41 b''
1 |RCE| 4.16.2 |RNS|
2 ------------------
3
4 Release Date
5 ^^^^^^^^^^^^
6
7 - 2019-04-02
8
9
10 New Features
11 ^^^^^^^^^^^^
12
13
14
15 General
16 ^^^^^^^
17
18
19
20 Security
21 ^^^^^^^^
22
23
24
25 Performance
26 ^^^^^^^^^^^
27
28
29
30 Fixes
31 ^^^^^
32
33 - Integrations: fixed missing template variable for fork reference checks.
34 - Permissions: fixed server error when showing permissions for user groups.
35 - Pull requests: fixed a bug in removal of multiple reviewers at once.
36
37
38 Upgrade notes
39 ^^^^^^^^^^^^^
40
41 - Scheduled release addressing problems in 4.16.X releases.
@@ -51,3 +51,4 b' 14502561d22e6b70613674cd675ae9a604b7989f'
51 4aaa40b605b01af78a9f6882eca561c54b525ef0 v4.15.2
51 4aaa40b605b01af78a9f6882eca561c54b525ef0 v4.15.2
52 797744642eca86640ed20bef2cd77445780abaec v4.16.0
52 797744642eca86640ed20bef2cd77445780abaec v4.16.0
53 6c3452c7c25ed35ff269690929e11960ed6ad7d3 v4.16.1
53 6c3452c7c25ed35ff269690929e11960ed6ad7d3 v4.16.1
54 5d8057df561c4b6b81b6401aed7d2f911e6e77f7 v4.16.2
@@ -9,6 +9,7 b' Release Notes'
9 .. toctree::
9 .. toctree::
10 :maxdepth: 1
10 :maxdepth: 1
11
11
12 release-notes-4.16.2.rst
12 release-notes-4.16.1.rst
13 release-notes-4.16.1.rst
13 release-notes-4.16.0.rst
14 release-notes-4.16.0.rst
14 release-notes-4.15.2.rst
15 release-notes-4.15.2.rst
@@ -67,12 +67,6 b' class RepoSettingsView(RepoAppView):'
67 .filter(UserFollowing.user_id == c.default_user_id) \
67 .filter(UserFollowing.user_id == c.default_user_id) \
68 .filter(UserFollowing.follows_repository == self.db_repo).scalar()
68 .filter(UserFollowing.follows_repository == self.db_repo).scalar()
69
69
70 c.has_origin_repo_read_perm = False
71 if self.db_repo.fork:
72 c.has_origin_repo_read_perm = h.HasRepoPermissionAny(
73 'repository.write', 'repository.read', 'repository.admin')(
74 self.db_repo.fork.repo_name, 'repo set as fork page')
75
76 c.ver_info_dict = self.rhodecode_vcs_repo.get_hooks_info()
70 c.ver_info_dict = self.rhodecode_vcs_repo.get_hooks_info()
77
71
78 return self._get_template_context(c)
72 return self._get_template_context(c)
@@ -114,7 +114,6 b' class IntegrationSettingsViewBase(BaseAp'
114 _ = self.request.translate
114 _ = self.request.translate
115 c = super(IntegrationSettingsViewBase, self)._get_local_tmpl_context(
115 c = super(IntegrationSettingsViewBase, self)._get_local_tmpl_context(
116 include_app_defaults=include_app_defaults)
116 include_app_defaults=include_app_defaults)
117
118 c.active = 'integrations'
117 c.active = 'integrations'
119
118
120 return c
119 return c
@@ -404,6 +403,11 b' class RepoIntegrationsView(IntegrationSe'
404 c.repo_name = self.db_repo.repo_name
403 c.repo_name = self.db_repo.repo_name
405 c.repository_pull_requests = ScmModel().get_pull_requests(self.repo)
404 c.repository_pull_requests = ScmModel().get_pull_requests(self.repo)
406
405
406 c.has_origin_repo_read_perm = False
407 if self.db_repo.fork:
408 c.has_origin_repo_read_perm = h.HasRepoPermissionAny(
409 'repository.write', 'repository.read', 'repository.admin')(
410 self.db_repo.fork.repo_name, 'summary fork link')
407 return c
411 return c
408
412
409 @LoginRequired()
413 @LoginRequired()
@@ -1020,6 +1020,9 b' class PullRequestModel(BaseModel):'
1020 log.debug("Adding %s reviewers", ids_to_add)
1020 log.debug("Adding %s reviewers", ids_to_add)
1021 log.debug("Removing %s reviewers", ids_to_remove)
1021 log.debug("Removing %s reviewers", ids_to_remove)
1022 changed = False
1022 changed = False
1023 added_audit_reviewers = []
1024 removed_audit_reviewers = []
1025
1023 for uid in ids_to_add:
1026 for uid in ids_to_add:
1024 changed = True
1027 changed = True
1025 _usr = self._get_user(uid)
1028 _usr = self._get_user(uid)
@@ -1030,29 +1033,37 b' class PullRequestModel(BaseModel):'
1030 # NOTE(marcink): mandatory shouldn't be changed now
1033 # NOTE(marcink): mandatory shouldn't be changed now
1031 # reviewer.mandatory = reviewers[uid]['reasons']
1034 # reviewer.mandatory = reviewers[uid]['reasons']
1032 Session().add(reviewer)
1035 Session().add(reviewer)
1033 self._log_audit_action(
1036 added_audit_reviewers.append(reviewer.get_dict())
1034 'repo.pull_request.reviewer.add', {'data': reviewer.get_dict()},
1035 user, pull_request)
1036
1037
1037 for uid in ids_to_remove:
1038 for uid in ids_to_remove:
1038 changed = True
1039 changed = True
1040 # NOTE(marcink): we fetch "ALL" reviewers using .all(). This is an edge case
1041 # that prevents and fixes cases that we added the same reviewer twice.
1042 # this CAN happen due to the lack of DB checks
1039 reviewers = PullRequestReviewers.query()\
1043 reviewers = PullRequestReviewers.query()\
1040 .filter(PullRequestReviewers.user_id == uid,
1044 .filter(PullRequestReviewers.user_id == uid,
1041 PullRequestReviewers.pull_request == pull_request)\
1045 PullRequestReviewers.pull_request == pull_request)\
1042 .all()
1046 .all()
1043 # use .all() in case we accidentally added the same person twice
1047
1044 # this CAN happen due to the lack of DB checks
1045 for obj in reviewers:
1048 for obj in reviewers:
1046 old_data = obj.get_dict()
1049 added_audit_reviewers.append(obj.get_dict())
1047 Session().delete(obj)
1050 Session().delete(obj)
1048 self._log_audit_action(
1049 'repo.pull_request.reviewer.delete',
1050 {'old_data': old_data}, user, pull_request)
1051
1051
1052 if changed:
1052 if changed:
1053 Session().expire_all()
1053 pull_request.updated_on = datetime.datetime.now()
1054 pull_request.updated_on = datetime.datetime.now()
1054 Session().add(pull_request)
1055 Session().add(pull_request)
1055
1056
1057 # finally store audit logs
1058 for user_data in added_audit_reviewers:
1059 self._log_audit_action(
1060 'repo.pull_request.reviewer.add', {'data': user_data},
1061 user, pull_request)
1062 for user_data in removed_audit_reviewers:
1063 self._log_audit_action(
1064 'repo.pull_request.reviewer.delete', {'old_data': user_data},
1065 user, pull_request)
1066
1056 self.notify_reviewers(pull_request, ids_to_add)
1067 self.notify_reviewers(pull_request, ids_to_add)
1057 return ids_to_add, ids_to_remove
1068 return ids_to_add, ids_to_remove
1058
1069
General Comments 0
You need to be logged in to leave comments. Login now