def project_members_action(request, chain_id, action=None, redirect_to=''): actions_map = { 'remove': _project_remove_member, 'accept': _project_accept_member, 'reject': _project_reject_member } if not action in actions_map.keys(): raise PermissionDenied member_ids = request.POST.getlist('members') project = get_object_or_404(Project, pk=chain_id) user = request.user if not user.owns_project(project) and not user.is_project_admin(): return redirect(reverse('index')) logger.info( "Batch members action from %s (chain: %r, action: %s, " "members: %r)", user.log_display, chain_id, action, member_ids) action_func = actions_map.get(action) for member_id in member_ids: member_id = int(member_id) with ExceptionHandler(request): action_func(request, member_id) return redirect_back(request, 'project_list')
def project_members_action(request, chain_id, action=None, redirect_to=''): actions_map = { 'remove': _project_remove_member, 'accept': _project_accept_member, 'reject': _project_reject_member } if not action in actions_map.keys(): raise PermissionDenied member_ids = request.POST.getlist('members') project, application = get_by_chain_or_404(chain_id) user = request.user if not user.owns_project(project) and not user.is_project_admin(): return redirect(reverse('index')) logger.info("Batch members action from %s (chain: %r, action: %s, " "members: %r)", user.log_display, chain_id, action, member_ids) action_func = actions_map.get(action) for member_id in member_ids: member_id = int(member_id) with ExceptionHandler(request): action_func(request, chain_id, member_id) return redirect_back(request, 'project_list')
def project_members_action(request, project_uuid, action=None, redirect_to='', memb_id=None): actions_map = { 'remove': { 'method': 'remove_membership', 'msg': _(astakos_messages.USER_MEMBERSHIP_REMOVED) }, 'accept': { 'method': 'accept_membership', 'msg': _(astakos_messages.USER_MEMBERSHIP_ACCEPTED) }, 'reject': { 'method': 'reject_membership', 'msg': _(astakos_messages.USER_MEMBERSHIP_REJECTED) } } if not action in actions_map.keys(): raise PermissionDenied if memb_id: member_ids = [memb_id] else: member_ids = request.POST.getlist('members') project = get_object_or_404(Project, uuid=project_uuid) user = request.user if not user.owns_project(project) and not user.is_project_admin(): messages.error(request, astakos_messages.NOT_ALLOWED) return redirect(reverse('index')) logger.info( "Member(s) action from %s (project: %r, action: %s, " "members: %r)", user.log_display, project.uuid, action, member_ids) action = actions_map.get(action) action_func = getattr(project_actions, action.get('method')) for member_id in member_ids: member_id = int(member_id) with ExceptionHandler(request): with transaction.atomic(): try: m = action_func(member_id, request.user) except ProjectError as e: messages.error(request, e) else: email = escape(m.person.email) msg = action.get('msg') % email messages.success(request, msg) return redirect_back(request, 'project_list')
def project_members_action(request, project_uuid, action=None, redirect_to='', memb_id=None): actions_map = { 'remove': { 'method': 'remove_membership', 'msg': _(astakos_messages.USER_MEMBERSHIP_REMOVED) }, 'accept': { 'method': 'accept_membership', 'msg': _(astakos_messages.USER_MEMBERSHIP_ACCEPTED) }, 'reject': { 'method': 'reject_membership', 'msg': _(astakos_messages.USER_MEMBERSHIP_REJECTED) } } if not action in actions_map.keys(): raise PermissionDenied if memb_id: member_ids = [memb_id] else: member_ids = request.POST.getlist('members') project = get_object_or_404(Project, uuid=project_uuid) user = request.user if not user.owns_project(project) and not user.is_project_admin(): messages.error(request, astakos_messages.NOT_ALLOWED) return redirect(reverse('index')) logger.info("Member(s) action from %s (project: %r, action: %s, " "members: %r)", user.log_display, project.uuid, action, member_ids) action = actions_map.get(action) action_func = getattr(project_actions, action.get('method')) for member_id in member_ids: member_id = int(member_id) with ExceptionHandler(request): with transaction.commit_on_success(): try: m = action_func(member_id, request.user) except ProjectError as e: messages.error(request, e) else: email = escape(m.person.email) msg = action.get('msg') % email messages.success(request, msg) return redirect_back(request, 'project_list')
def project_app_approve(request, application_id): if not request.user.is_project_admin(): m = _(astakos_messages.NOT_ALLOWED) raise PermissionDenied(m) try: ProjectApplication.objects.get(id=application_id) except ProjectApplication.DoesNotExist: raise Http404 with ExceptionHandler(request): _project_app_approve(request, application_id) chain_id = get_related_project_id(application_id) if not chain_id: return redirect_back(request, 'project_list') return redirect(reverse('project_detail', args=(chain_id, )))
def project_app_approve(request, application_id): if not request.user.is_project_admin(): m = _(astakos_messages.NOT_ALLOWED) raise PermissionDenied(m) try: app = ProjectApplication.objects.get(id=application_id) except ProjectApplication.DoesNotExist: raise Http404 with ExceptionHandler(request): _project_app_approve(request, application_id) chain_id = get_related_project_id(application_id) if not chain_id: return redirect_back(request, 'project_list') return redirect(reverse('project_detail', args=(chain_id,)))
def project_reject_member(request, memb_id): with ExceptionHandler(request): _project_reject_member(request, memb_id) return redirect_back(request, 'project_list')
def project_reject_member(request, chain_id, memb_id): with ExceptionHandler(request): _project_reject_member(request, chain_id, memb_id) return redirect_back(request, 'project_list')