Skip to content

Commit 3b0507c

Browse files
committed
refactor: revoke access from grouo
1 parent 53e594a commit 3b0507c

File tree

3 files changed

+35
-60
lines changed

3 files changed

+35
-60
lines changed

Access/group_helper.py

Lines changed: 33 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,22 @@ def validate_group_access_create_request(group, auth_user):
751751
return None
752752

753753

754+
def revoke_user_access(user, access, revoker_email):
755+
user_identity = user.get_active_identity(access.access_tag)
756+
user_identity.decline_non_approved_access_mapping(access)
757+
user_identity.offboarding_approved_access_mapping(access)
758+
background_task(
759+
"run_access_revoke",
760+
json.dumps(
761+
{
762+
"request_id": user_identity.get_granted_access_mapping(access)
763+
.first()
764+
.request_id,
765+
"revoker_email": revoker_email,
766+
}
767+
),
768+
)
769+
754770
def remove_member(request):
755771
try:
756772
membership_id = request.POST.get("membershipId")
@@ -782,27 +798,26 @@ def remove_member(request):
782798
revoke_accesses = list(set(revoke_group_accesses) - set(other_group_accesses))
783799

784800
for access in revoke_accesses:
785-
user_identity = user.get_active_identity(access.access_tag)
786-
user_identity.decline_non_approved_access_mapping(access)
787-
user_identity.offboarding_approved_access_mapping(access)
788-
background_task(
789-
"run_access_revoke",
790-
json.dumps(
791-
{
792-
"request_id": user_identity.get_granted_access_mapping(access)
793-
.first()
794-
.request_id,
795-
"revoker_email": request.user.user.email,
796-
}
797-
),
798-
)
801+
revoke_user_access(user, access, request.user.user.email)
799802

800803
membership.revoke_membership()
801804

802805
return {"message": "Successfully removed user from group"}
803806

807+
def access_exist_in_other_groups_of_user(membership, group, access):
808+
other_memberships_groups = (
809+
membership.user.get_all_approved_memberships()
810+
.exclude(group=membership.group)
811+
.values_list("group", flat=True)
812+
)
813+
for group in other_memberships_groups:
814+
if group.access_exist(access):
815+
return True
816+
817+
return False
818+
804819

805-
def revoke_access(request):
820+
def revoke_access_from_group(request):
806821
try:
807822
request_id = request.POST.get("request_id")
808823
if not request_id:
@@ -821,36 +836,11 @@ def revoke_access(request):
821836
auth_user = request.user
822837
if not (auth_user.user.has_permission("ALLOW_USER_OFFBOARD") and group.member_is_owner(auth_user.user)):
823838
raise Exception("User Unauthorized to perfrom the action")
824-
825-
should_continue = False
826-
for membership in group.get_all_approved_members():
827-
other_memberships_groups = (
828-
membership.user.get_all_approved_memberships()
829-
.exclude(group=membership.group)
830-
.values_list("group", flat=True)
831-
)
832839

833-
for group in other_memberships_groups:
834-
if group.access_exist(mapping.access):
835-
should_continue = True
836-
break
837-
838-
if(should_continue):
839-
should_continue = False
840+
for membership in group.get_all_approved_members():
841+
if access_exist_in_other_groups(membership, group, mapping.access):
840842
continue
841843

842-
user_access_identity = membership.user.get_active_identity(mapping.access.access_tag)
843-
user_access_mapping = user_access_identity.get_granted_access_mapping(mapping.access)
844-
845-
846-
background_task(
847-
"run_access_revoke",
848-
json.dumps(
849-
{
850-
"request_id": user_access_mapping.request_id,
851-
"revoker_email": auth_user.user.email
852-
}
853-
),
854-
)
844+
revoke_user_access(membership.user, mapping.access, auth_user.user.email)
855845

856846
return {"message": "Successfully initiated the revoke"}

Access/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ def user_offboarding(request):
162162
@login_required
163163
def requestAccess(request):
164164
if request.POST:
165+
print((request.POST))
165166
context = create_request(
166167
auth_user=request.user, access_request_form=request.POST
167168
)

templates/BSOps/group_access_list_tabs/generic_accesses_tab.html

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,6 @@
4343
alert("Error occured while marking revoke! - "+result["responseJSON"]["error"])
4444
}});
4545
});
46-
47-
$(document).on('click', '.inactive-access-button', function(){
48-
id = $(this).attr("id");
49-
urlBuilder = "/group/markGroupAccessInactive?requestId="+id
50-
$.ajax({url: urlBuilder,
51-
success: function(result){
52-
document.getElementById(id+"-revoke-button").innerHTML = "Access Marked Inactive";
53-
},
54-
error: function(result){
55-
alert("Error occured while marking revoke! - "+result["responseJSON"]["error"])
56-
}});
57-
});
5846
</script>
5947
<div id="genericAcceses" class="container tab-pane fade"><br>
6048
{% if genericAccesses %}
@@ -78,12 +66,8 @@
7866
<td>{{ eachAccess.status }}</td>
7967
<td>{{ eachAccess.accessMeta }}</td>
8068
<td id="inactive-{{ eachAccess.requestId }}-revoke-button">
81-
{% if user.is_owner %}
82-
<button class="btn btn-danger inactive-access-button" id="inactive-{{ eachAccess.requestId }}">Mark Inactive</button><br>(Existing accesses are not revoked)<br><br>
83-
{% endif %}
84-
8569
{% if allowRevoke and eachAccess.status == 'Approved' %}
86-
<button class="btn btn-danger group-revoke-button" id="{{ eachAccess.requestId }}">Mark Revoked</button><br>(Existing accesses are marked revoked)
70+
<button class="btn btn-danger group-revoke-button" id="{{ eachAccess.requestId }}">Mark Revoked</button><br>
8771
{% endif %}
8872
</td>
8973
</tr>

0 commit comments

Comments
 (0)