1616 User ,
1717 GroupV2 ,
1818 AccessV2 ,
19+ MembershipV2 ,
1920 ApprovalType ,
2021)
2122from Access .background_task_manager import background_task , accept_request
@@ -224,7 +225,7 @@ def get_decline_access_request(request, access_type, request_id):
224225 UserAccessMapping .get_pending_access_mapping (request_id = value )
225226 )
226227 request_ids .extend (current_ids )
227- access_type = access_type . rsplit ( "-" , 1 )[ 0 ]
228+ access_type = "moduleAccess"
228229 elif access_type == "clubGroupAccess" :
229230 for value in [request_id ]: # ready for bulk decline
230231 return_ids .append (value )
@@ -238,6 +239,7 @@ def get_decline_access_request(request, access_type, request_id):
238239 access_type = "groupAccess"
239240 else :
240241 request_ids = [request_id ]
242+
241243 for current_request_id in request_ids :
242244 if access_type == "groupAccess" :
243245 response = decline_group_access (request , current_request_id , reason )
@@ -283,9 +285,11 @@ def get_pending_accesses_from_modules(access_user):
283285 process_group_requests (pending_accesses ["group_requests" ], group_requests )
284286
285287 logger .info (
286- "Time to fetch pending requests of access module: %s - %s "
287- % access_module_tag ,
288- str (time .time () - access_module_start_time ),
288+ "Time to fetch pending requests of access module: %s - %s " %
289+ (
290+ access_module_tag ,
291+ str (time .time () - access_module_start_time )
292+ ),
289293 )
290294
291295 return individual_requests , list (group_requests .values ())
@@ -297,7 +301,7 @@ def process_individual_requests(
297301 if len (individual_pending_requests ):
298302 clubbed_requests = {}
299303 for accessrequest in individual_pending_requests :
300- club_id = accessrequest ["requestId" ].rsplit ("_" , 1 )[0 ]
304+ club_id = accessrequest ["requestId" ].rsplit ("_" )[0 ]
301305 if club_id not in clubbed_requests :
302306 clubbed_requests [club_id ] = {
303307 "club_id" : club_id ,
@@ -326,7 +330,7 @@ def process_group_requests(group_pending_requests, group_requests):
326330 club_id = (
327331 accessrequest ["groupName" ]
328332 + "-"
329- + accessrequest ["requestId" ].rsplit ("-" , 1 )[- 1 ].rsplit ("_" , 1 )[0 ]
333+ + accessrequest ["requestId" ].rsplit ("-" , 1 )[- 1 ].rsplit ("_" )[0 ]
330334 )
331335 needs_access_approve = GroupV2 .objects .get (
332336 name = accessrequest ["groupName" ], status = "Approved"
@@ -382,7 +386,7 @@ def create_request(auth_user, access_request_form):
382386 for index1 , access_type in enumerate (access_request ["accessRequests" ]):
383387 access_labels = validate_access_labels (
384388 access_labels_json = access_request ["accessLabel" ][index1 ],
385- access_type = access_type ,
389+ access_tag = access_type ,
386390 )
387391 access_reason = access_request ["accessReason" ][index1 ]
388392
@@ -399,17 +403,16 @@ def create_request(auth_user, access_request_form):
399403 }
400404
401405 access_module = helper .get_available_access_modules ()[access_type ]
402- module_access_labels = access_module .validate_request (
403- access_labels , auth_user , is_group = False
404- )
405-
406406 extra_field_labels = get_extra_field_labels (access_module )
407-
408407 if extra_fields and extra_field_labels :
409408 for field in extra_field_labels :
410- module_access_labels [0 ][field ] = extra_fields [0 ]
409+ access_labels [0 ][field ] = extra_fields [0 ]
411410 extra_fields = extra_fields [1 :]
412411
412+ module_access_labels = access_module .validate_request (
413+ access_labels , auth_user , is_group = False
414+ )
415+
413416 for index2 , access_label in enumerate (module_access_labels ):
414417 request_id = request_id + "_" + str (index2 )
415418 access_create_error = _create_access (
@@ -511,7 +514,10 @@ def get_extra_field_labels(access_module):
511514def get_extra_fields (access_request ):
512515 if "extraFields" in access_request :
513516 return access_request ["extraFields" ]
514- return []
517+ elif "extraFields[]" in access_request :
518+ return [access_request ["extraFields[]" ]]
519+ else :
520+ return []
515521
516522
517523def _validate_access_request (access_request_form , user ):
@@ -551,7 +557,6 @@ def validate_access_labels(access_labels_json, access_tag):
551557
552558def _get_approver_permissions (access_tag , access_label = None ):
553559 json_response = {}
554-
555560 access_module = helper .get_available_access_module_from_tag (access_tag )
556561 approver_permissions = []
557562 approver_permissions = access_module .fetch_approver_permissions (access_label )
@@ -583,9 +588,9 @@ def accept_user_access_requests(auth_user, request_id):
583588 )
584589 return json_response
585590
586- requester = access_mapping .user_identity .user . email
587- if auth_user .username == requester :
588- json_response ["error" ] = USER_REQUEST_PERMISSION_DENIED_ERR_MSG
591+ requester = access_mapping .user_identity .user
592+ if auth_user .user == requester :
593+ json_response ["error" ] = SELF_APPROVAL_ERROR_MSG
589594 return json_response
590595
591596 access_label = access_mapping .access .access_label
@@ -674,37 +679,50 @@ def run_accept_request_task(
674679
675680def decline_individual_access (request , access_type , request_id , reason ):
676681 json_response = {}
677- access_mapping = UserAccessMapping .get_access_request (request_id )
682+ access_mapping = {}
683+ decline_new_group = False
684+ if access_type == "declineNewGroup" :
685+ access_mapping = GroupV2 .get_pending_group (request_id )
686+ decline_new_group = True
687+ else :
688+ access_mapping = UserAccessMapping .get_access_request (request_id )
689+ access_type = access_mapping .access .access_tag
690+
678691 if not is_request_valid (request_id , access_mapping ):
679692 json_response ["error" ] = USER_REQUEST_IN_PROCESS_ERR_MSG .format (
680693 request_id = request_id ,
681694 )
682695 return json_response
683696
684- json_response = validate_approver_permissions (access_mapping , access_type , request )
685- if "error" in json_response :
686- return json_response
697+ if not decline_new_group :
698+ json_response = validate_approver_permissions (access_mapping , access_type , request )
699+ if "error" in json_response :
700+ return json_response
687701
688702 with transaction .atomic ():
689703 access_mapping .decline_access (reason )
690704 if hasattr (access_mapping , "approver_1" ):
691- access_mapping .decline_reason = reason
692705 if access_mapping .approver_1 is not None :
693706 access_mapping .approver_2 = request .user .user
694707 else :
695708 access_mapping .approver_1 = request .user .user
696709 else :
697- access_mapping .reason = reason
698- access_mapping .approver = request .user .username
710+ access_mapping .approver = request .user .user
699711
700712 access_mapping .save ()
701713
702- access_module = helper .get_available_access_module_from_tag (access_type )
703- access_labels = [access_mapping .access .access_label ]
704- description = access_module .combine_labels_desc (access_labels )
705- notifications .send_mail_for_request_decline (
706- request , description , request_id , reason , access_type
707- )
714+ if not decline_new_group :
715+ access_module = helper .get_available_access_module_from_tag (access_type )
716+ access_labels = [access_mapping .access .access_label ]
717+ description = access_module .combine_labels_desc (access_labels )
718+ notifications .send_mail_for_request_decline (
719+ request , description , request_id , reason , access_type
720+ )
721+ else :
722+ MembershipV2 .update_membership (access_mapping , reason )
723+ notifications .send_mail_for_request_decline (
724+ request , "Group Creation" , request_id , reason , access_type
725+ )
708726
709727 logger .debug (
710728 USER_REQUEST_DECLINE_MSG .format (
@@ -821,7 +839,7 @@ def decline_group_access(request, request_id, reason):
821839 access_type = group_mapping .access .access_tag
822840
823841 json_response = validate_approver_permissions (
824- group_mapping , access_type , request , request_id
842+ group_mapping , access_type , request
825843 )
826844 if "error" in json_response :
827845 return json_response
0 commit comments