Skip to content

Commit

Permalink
Merge pull request #7804 from JVickery-TBS/fix/prevent-member-duplica…
Browse files Browse the repository at this point in the history
…tion

Fix Possible Member Duplication
  • Loading branch information
amercader committed Nov 2, 2023
2 parents dcf22c8 + aa858a1 commit a8eb4d7
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
1 change: 1 addition & 0 deletions changes/7804.bugfix
@@ -0,0 +1 @@
Aligned `member_create` with `group_member_save` to prevent possible member duplication.
7 changes: 6 additions & 1 deletion ckan/logic/action/create.py
Expand Up @@ -610,7 +610,10 @@ def member_create(context: Context,
filter(model.Member.table_name == obj_type).\
filter(model.Member.table_id == obj.id).\
filter(model.Member.group_id == group.id).\
filter(model.Member.state == 'active').first()
order_by(
# type_ignore_reason: incomplete SQLAlchemy types
model.Member.state.asc() # type: ignore
).first()
if member:
user_obj = model.User.get(user)
if user_obj and member.table_name == u'user' and \
Expand All @@ -619,6 +622,8 @@ def member_create(context: Context,
capacity != u'admin':
raise NotAuthorized("Administrators cannot revoke their "
"own admin status")
if member.state != 'active':
member.state = 'active'
else:
member = model.Member(table_name=obj_type,
table_id=obj.id,
Expand Down

0 comments on commit a8eb4d7

Please sign in to comment.