1616 User ,
1717 GroupV2 ,
1818 AccessV2 ,
19+ MembershipV2 ,
1920 ApprovalType ,
2021)
2122from Access .background_task_manager import background_task , accept_request
@@ -226,7 +227,7 @@ def get_decline_access_request(request, access_type, request_id):
226227 UserAccessMapping .get_pending_access_mapping (request_id = value )
227228 )
228229 request_ids .extend (current_ids )
229- access_type = access_type . rsplit ( "-" , 1 )[ 0 ]
230+ access_type = "moduleAccess"
230231 elif access_type == "clubGroupAccess" :
231232 for value in [request_id ]: # ready for bulk decline
232233 return_ids .append (value )
@@ -240,6 +241,7 @@ def get_decline_access_request(request, access_type, request_id):
240241 access_type = "groupAccess"
241242 else :
242243 request_ids = [request_id ]
244+
243245 for current_request_id in request_ids :
244246 if access_type == "groupAccess" :
245247 response = decline_group_access (request , current_request_id , reason )
@@ -285,8 +287,11 @@ def get_pending_accesses_from_modules(access_user):
285287 process_group_requests (pending_accesses ["group_requests" ], group_requests )
286288
287289 logger .info (
288- "Time to fetch pending requests of access module: %s - %s "
289- % (access_module_tag , str (time .time () - access_module_start_time )),
290+ "Time to fetch pending requests of access module: %s - %s " %
291+ (
292+ access_module_tag ,
293+ str (time .time () - access_module_start_time )
294+ ),
290295 )
291296
292297 return individual_requests , list (group_requests .values ())
@@ -298,7 +303,7 @@ def process_individual_requests(
298303 if len (individual_pending_requests ):
299304 clubbed_requests = {}
300305 for accessrequest in individual_pending_requests :
301- club_id = accessrequest ["requestId" ].rsplit ("_" , 1 )[0 ]
306+ club_id = accessrequest ["requestId" ].rsplit ("_" )[0 ]
302307 if club_id not in clubbed_requests :
303308 clubbed_requests [club_id ] = {
304309 "club_id" : club_id ,
@@ -327,7 +332,7 @@ def process_group_requests(group_pending_requests, group_requests):
327332 club_id = (
328333 accessrequest ["groupName" ]
329334 + "-"
330- + accessrequest ["requestId" ].rsplit ("-" , 1 )[- 1 ].rsplit ("_" , 1 )[0 ]
335+ + accessrequest ["requestId" ].rsplit ("-" , 1 )[- 1 ].rsplit ("_" )[0 ]
331336 )
332337 needs_access_approve = GroupV2 .objects .get (
333338 name = accessrequest ["groupName" ], status = "Approved"
@@ -383,7 +388,7 @@ def create_request(auth_user, access_request_form):
383388 for index1 , access_type in enumerate (access_request ["accessRequests" ]):
384389 access_labels = validate_access_labels (
385390 access_labels_json = access_request ["accessLabel" ][index1 ],
386- access_type = access_type ,
391+ access_tag = access_type ,
387392 )
388393 access_reason = access_request ["accessReason" ][index1 ]
389394
@@ -400,17 +405,16 @@ def create_request(auth_user, access_request_form):
400405 }
401406
402407 access_module = helper .get_available_access_modules ()[access_type ]
403- module_access_labels = access_module .validate_request (
404- access_labels , auth_user , is_group = False
405- )
406-
407408 extra_field_labels = get_extra_field_labels (access_module )
408-
409409 if extra_fields and extra_field_labels :
410410 for field in extra_field_labels :
411- module_access_labels [0 ][field ] = extra_fields [0 ]
411+ access_labels [0 ][field ] = extra_fields [0 ]
412412 extra_fields = extra_fields [1 :]
413413
414+ module_access_labels = access_module .validate_request (
415+ access_labels , auth_user , is_group = False
416+ )
417+
414418 for index2 , access_label in enumerate (module_access_labels ):
415419 request_id = request_id + "_" + str (index2 )
416420 access_create_error = _create_access (
@@ -512,7 +516,10 @@ def get_extra_field_labels(access_module):
512516def get_extra_fields (access_request ):
513517 if "extraFields" in access_request :
514518 return access_request ["extraFields" ]
515- return []
519+ elif "extraFields[]" in access_request :
520+ return [access_request ["extraFields[]" ]]
521+ else :
522+ return []
516523
517524
518525def _validate_access_request (access_request_form , user ):
@@ -552,7 +559,6 @@ def validate_access_labels(access_labels_json, access_tag):
552559
553560def _get_approver_permissions (access_tag , access_label = None ):
554561 json_response = {}
555-
556562 access_module = helper .get_available_access_module_from_tag (access_tag )
557563 approver_permissions = []
558564 approver_permissions = access_module .fetch_approver_permissions (access_label )
@@ -584,9 +590,9 @@ def accept_user_access_requests(auth_user, request_id):
584590 )
585591 return json_response
586592
587- requester = access_mapping .user_identity .user . email
588- if auth_user .username == requester :
589- json_response ["error" ] = USER_REQUEST_PERMISSION_DENIED_ERR_MSG
593+ requester = access_mapping .user_identity .user
594+ if auth_user .user == requester :
595+ json_response ["error" ] = SELF_APPROVAL_ERROR_MSG
590596 return json_response
591597
592598 access_label = access_mapping .access .access_label
@@ -675,37 +681,50 @@ def run_accept_request_task(
675681
676682def decline_individual_access (request , access_type , request_id , reason ):
677683 json_response = {}
678- access_mapping = UserAccessMapping .get_access_request (request_id )
684+ access_mapping = {}
685+ decline_new_group = False
686+ if access_type == "declineNewGroup" :
687+ access_mapping = GroupV2 .get_pending_group (request_id )
688+ decline_new_group = True
689+ else :
690+ access_mapping = UserAccessMapping .get_access_request (request_id )
691+ access_type = access_mapping .access .access_tag
692+
679693 if not is_request_valid (request_id , access_mapping ):
680694 json_response ["error" ] = USER_REQUEST_IN_PROCESS_ERR_MSG .format (
681695 request_id = request_id ,
682696 )
683697 return json_response
684698
685- json_response = validate_approver_permissions (access_mapping , access_type , request )
686- if "error" in json_response :
687- return json_response
699+ if not decline_new_group :
700+ json_response = validate_approver_permissions (access_mapping , access_type , request )
701+ if "error" in json_response :
702+ return json_response
688703
689704 with transaction .atomic ():
690705 access_mapping .decline_access (reason )
691706 if hasattr (access_mapping , "approver_1" ):
692- access_mapping .decline_reason = reason
693707 if access_mapping .approver_1 is not None :
694708 access_mapping .approver_2 = request .user .user
695709 else :
696710 access_mapping .approver_1 = request .user .user
697711 else :
698- access_mapping .reason = reason
699- access_mapping .approver = request .user .username
712+ access_mapping .approver = request .user .user
700713
701714 access_mapping .save ()
702715
703- access_module = helper .get_available_access_module_from_tag (access_type )
704- access_labels = [access_mapping .access .access_label ]
705- description = access_module .combine_labels_desc (access_labels )
706- notifications .send_mail_for_request_decline (
707- request , description , request_id , reason , access_type
708- )
716+ if not decline_new_group :
717+ access_module = helper .get_available_access_module_from_tag (access_type )
718+ access_labels = [access_mapping .access .access_label ]
719+ description = access_module .combine_labels_desc (access_labels )
720+ notifications .send_mail_for_request_decline (
721+ request , description , request_id , reason , access_type
722+ )
723+ else :
724+ MembershipV2 .update_membership (access_mapping , reason )
725+ notifications .send_mail_for_request_decline (
726+ request , "Group Creation" , request_id , reason , access_type
727+ )
709728
710729 logger .debug (
711730 USER_REQUEST_DECLINE_MSG .format (
@@ -822,7 +841,7 @@ def decline_group_access(request, request_id, reason):
822841 access_type = group_mapping .access .access_tag
823842
824843 json_response = validate_approver_permissions (
825- group_mapping , access_type , request , request_id
844+ group_mapping , access_type , request
826845 )
827846 if "error" in json_response :
828847 return json_response
0 commit comments