def get_queryset(self): user = OSFUser.load(self.kwargs.get('user_id', None)) return Comment.objects.filter( spam_status=int(self.request.GET.get('status', '1')), user=user ).exclude(reports={}).exclude(reports=None).order_by(self.ordering)
def dispatch(self, request, *args, **kwargs): self.user = OSFUser.load(self.kwargs.get('guid')) if self.user is None: raise Http404('{} with id "{}" not found.'.format( self.context_object_name.title(), self.kwargs.get('guid'))) return super(ResetPasswordView, self).dispatch(request, *args, **kwargs)
def get_object(self, queryset=None): user = OSFUser.load(self.kwargs.get('guid')) if user: return user else: raise Http404('{} with id "{}" not found.'.format( self.context_object_name.title(), self.kwargs.get('guid')))
def delete(self, request, *args, **kwargs): if not request.user.has_perm('osf.mark_spam'): raise PermissionDenied( "You don't have permission to update this user's spam status.") user_ids = [] for key in list(request.POST.keys()): if key == 'spam_confirm': action = 'SPAM' action_flag = CONFIRM_SPAM elif key == 'ham_confirm': action = 'HAM' action_flag = CONFIRM_HAM elif key != 'csrfmiddlwaretoken': user_ids.append(key) for uid in user_ids: user = OSFUser.load(uid) if action == 'SPAM': user.confirm_spam() elif action == 'HAM': user.confirm_ham(save=True) user.save() update_admin_log(user_id=self.request.user.id, object_id=uid, object_repr='User', message=f'Confirmed {action}: {uid}', action_flag=action_flag) return redirect('users:flagged-spam')
def form_valid(self, form): osf_id = form.cleaned_data.get('osf_id') osf_user = OSFUser.load(osf_id) if not osf_user: raise Http404('OSF user with id "{}" not found. Please double check.'.format(osf_id)) osf_user.is_staff = True osf_user.save() # create AdminProfile for this new user profile, created = AdminProfile.objects.get_or_create(user=osf_user) osf_user.groups.clear() prereg_admin_group = Group.objects.get(name='prereg_admin') for group in form.cleaned_data.get('group_perms'): osf_user.groups.add(group) if group == prereg_admin_group: osf_user.add_system_tag(PREREG_ADMIN_TAG) osf_user.save() if created: messages.success(self.request, 'Registration successful for OSF User {}!'.format(osf_user.username)) else: messages.success(self.request, 'Permissions update successful for OSF User {}!'.format(osf_user.username)) return super(RegisterUser, self).form_valid(form)
def create(self, validated_data): auth = get_user_auth(self.context['request']) user_id = validated_data.pop('_id', '') address = validated_data.pop('email', '') provider = self.context['provider'] context = {'referrer': auth.user} if user_id and address: raise ValidationError('Cannot specify both "id" and "email".') user = None if user_id: user = OSFUser.load(user_id) elif address: try: email = Email.objects.get(address=address.lower()) except Email.DoesNotExist: full_name = validated_data.pop('fullname', '') if not full_name: raise ValidationError( '"full_name" is required when adding a moderator via email.' ) user = OSFUser.create_unregistered(full_name, email=address) user.add_unclaimed_record(provider, referrer=auth.user, given_name=full_name, email=address) user.save() claim_url = user.get_claim_url(provider._id, external=True) context['claim_url'] = claim_url else: user = email.user else: raise ValidationError('Must specify either "id" or "email".') if not user: raise ValidationError('Unable to find specified user.') context['user'] = user context['provider'] = provider if bool(get_perms(user, provider)): raise ValidationError('Specified user is already a moderator.') if 'claim_url' in context: template = mails.CONFIRM_EMAIL_MODERATION(provider) else: template = mails.MODERATOR_ADDED(provider) perm_group = validated_data.pop('permission_group', '') if perm_group not in GROUPS: raise ValidationError('Unrecognized permission_group') context[ 'notification_settings_url'] = '{}reviews/preprints/{}/notifications'.format( DOMAIN, provider._id) context['provider_name'] = provider.name context['is_reviews_moderator_notification'] = True context['is_admin'] = perm_group == 'admin' provider.add_to_group(user, perm_group) setattr(user, 'permission_group', perm_group) # Allows reserialization mails.send_mail(user.username, template, mimetype='html', **context) return user
def form_valid(self, form): guid = form.cleaned_data['guid'] name = form.cleaned_data['name'] email = form.cleaned_data['email'] if name: return redirect(reverse('users:search-list', kwargs={'name': name})) if email: user = get_user(email) if not user: return page_not_found( self.request, AttributeError(f'resource with id "{email}" not found.')) return redirect(reverse('users:user', kwargs={'guid': user._id})) if guid: user = OSFUser.load(guid) if not user: return page_not_found( self.request, AttributeError(f'resource with id "{guid}" not found.')) return redirect(reverse('users:user', kwargs={'guid': guid})) return super().form_valid(form)
def form_valid(self, form): osf_id = form.cleaned_data.get('osf_id') osf_user = OSFUser.load(osf_id) if not osf_user: raise Http404('OSF user with id "{}" not found. Please double check.'.format(osf_id)) osf_user.is_staff = True osf_user.save() # create AdminProfile for this new user profile, created = AdminProfile.objects.get_or_create(user=osf_user) for group in form.cleaned_data.get('group_perms'): osf_user.groups.add(group) split = group.name.split('_') group_type = split[0] if group_type == 'reviews': provider_id = split[2] provider = AbstractProvider.objects.get(id=provider_id) provider.notification_subscriptions.get(event_name='new_pending_submissions').add_user_to_subscription(osf_user, 'email_transactional') osf_user.save() if created: messages.success(self.request, 'Registration successful for OSF User {}!'.format(osf_user.username)) else: messages.success(self.request, 'Permissions update successful for OSF User {}!'.format(osf_user.username)) return super(RegisterUser, self).form_valid(form)
def form_valid(self, form): osf_id = form.cleaned_data.get('osf_id') osf_user = OSFUser.load(osf_id) if not osf_user: raise Http404( 'OSF user with id "{}" not found. Please double check.'.format( osf_id)) osf_user.is_staff = True osf_user.save() # create AdminProfile for this new user profile, created = AdminProfile.objects.get_or_create(user=osf_user) osf_user.groups.clear() prereg_admin_group = Group.objects.get(name='prereg_admin') for group in form.cleaned_data.get('group_perms'): osf_user.groups.add(group) if group == prereg_admin_group: osf_user.add_system_tag(PREREG_ADMIN_TAG) osf_user.save() if created: messages.success( self.request, 'Registration successful for OSF User {}!'.format( osf_user.username)) else: messages.success( self.request, 'Permissions update successful for OSF User {}!'.format( osf_user.username)) return super(RegisterUser, self).form_valid(form)
def form_valid(self, form): osf_id = form.cleaned_data.get('osf_id') osf_user = OSFUser.load(osf_id) if not osf_user: raise Http404('OSF user with id "{}" not found. Please double check.'.format(osf_id)) osf_user.is_staff = True osf_user.save() # create AdminProfile for this new user profile, created = AdminProfile.objects.get_or_create(user=osf_user) osf_user.groups.clear() prereg_admin_group = Group.objects.get(name='prereg_admin') for group in form.cleaned_data.get('group_perms'): osf_user.groups.add(group) split = group.name.split('_') group_type = split[0] if group_type == 'reviews': provider_id = split[1] provider = PreprintProvider.load(provider_id) provider.notification_subscriptions.get(event_name='new_pending_submissions').add_user_to_subscription(osf_user, 'email_transactional') if group == prereg_admin_group: administer_permission = Permission.objects.get(codename='administer_prereg') osf_user.user_permissions.add(administer_permission) osf_user.save() if created: messages.success(self.request, 'Registration successful for OSF User {}!'.format(osf_user.username)) else: messages.success(self.request, 'Permissions update successful for OSF User {}!'.format(osf_user.username)) return super(RegisterUser, self).form_valid(form)
def get_object(self, queryset=None): customer_id = self.kwargs.get('user_id', None) customer = OSFUser.load(customer_id) email = customer.emails.values_list('address', flat=True).first() desk = DeskClient(self.request.user) params = {'email': email} customer = desk.find_customer(params) return customer
def get_object(self, queryset=None): customer_id = self.kwargs.get('user_id', None) customer = OSFUser.load(customer_id) email = customer.emails[0] desk = DeskClient(self.request.user) params = {'email': email} customer = desk.find_customer(params) return customer
def get_context_data(self, **kwargs): user = OSFUser.load(self.kwargs.get('guid')) kwargs['user_link'] = self.get_link(user) kwargs['username'] = user.username kwargs['title'] = self.get_link_type() kwargs['node_claim_links'] = self.get_claim_links(user) return super(GetUserLink, self).get_context_data(**kwargs)
def get_context_data(self, **kwargs): user = OSFUser.load(self.kwargs.get('guid')) try: self.initial.setdefault('emails', [(r, r) for r in user.emails]) except AttributeError: raise Http404('{} with id "{}" not found.'.format( self.context_object_name.title(), self.kwargs.get('guid'))) kwargs.setdefault('guid', user._id) return super(ResetPasswordView, self).get_context_data(**kwargs)
def dispatch(self, request, *args, **kwargs): self.user = OSFUser.load(self.kwargs.get('guid')) if self.user is None: raise Http404( '{} with id "{}" not found.'.format( self.context_object_name.title(), self.kwargs.get('guid') )) return super(ResetPasswordView, self).dispatch(request, *args, **kwargs)
def get_queryset(self): customer_id = self.kwargs.get('user_id', None) customer = OSFUser.load(customer_id) email = customer.emails.values_list('address', flat=True).first() desk = DeskClient(self.request.user) params = { 'email': email, } queryset = desk.cases(params) return queryset
def get_queryset(self): customer_id = self.kwargs.get('user_id', None) customer = OSFUser.load(customer_id) email = customer.emails[0] desk = DeskClient(self.request.user) params = { 'email': email, } queryset = desk.cases(params) return queryset
def get_context_data(self, **kwargs): kwargs = super(UserView, self).get_context_data(**kwargs) kwargs.update({'SPAM_STATUS': SpamStatus}) # Pass spam status in to check against user = OSFUser.load( self.kwargs.get('guid')) # Pull User for Node/Preprints preprint_queryset = user.preprints.filter( deleted=None).order_by('title') node_queryset = user.contributor_or_group_member_to.order_by('title') kwargs = self.get_paginated_queryset(preprint_queryset, 'preprint', serialize_simple_preprint, **kwargs) kwargs = self.get_paginated_queryset(node_queryset, 'node', serialize_simple_node, **kwargs) return kwargs
def delete(self, request, *args, **kwargs): if not request.user.get_perms('osf.mark_spam'): raise PermissionDenied( "You don't have permission to update this user's spam status.") user_ids = [ uid for uid in request.POST.keys() if uid != 'csrfmiddlewaretoken' ] for uid in user_ids: user = OSFUser.load(uid) if 'spam_flagged' in user.system_tags: user.system_tags.remove('spam_flagged') user.add_system_tag('spam_confirmed') user.save() update_admin_log(user_id=self.request.user.id, object_id=uid, object_repr='User', message='Confirmed SPAM: {}'.format(uid), action_flag=CONFIRM_SPAM) return redirect('users:flagged-spam')
def delete(self, request, *args, **kwargs): if not request.user.get_perms('osf.mark_spam'): raise PermissionDenied("You don't have permission to update this user's spam status.") user_ids = [ uid for uid in request.POST.keys() if uid != 'csrfmiddlewaretoken' ] for uid in user_ids: user = OSFUser.load(uid) if 'spam_flagged' in user.system_tags: user.system_tags.remove('spam_flagged') user.add_system_tag('spam_confirmed') user.save() update_admin_log( user_id=self.request.user.id, object_id=uid, object_repr='User', message='Confirmed SPAM: {}'.format(uid), action_flag=CONFIRM_SPAM ) return redirect('users:flagged-spam')
def get_user(self, user_id): try: user = OSFUser.objects.get(id=user_id) except OSFUser.DoesNotExist: user = OSFUser.load(user_id) return user
def get_object(self, queryset=None): return (Node.load(self.kwargs.get('node_id')), OSFUser.load(self.kwargs.get('user_id')))
def get_object(self, queryset=None): return (Node.load(self.kwargs.get('guid')), OSFUser.load(self.kwargs.get('user_id')))
def get_object(self, queryset=None): return serialize_user(OSFUser.load(self.kwargs.get('guid')))
def get_object(self, queryset=None): return OSFUser.load(self.kwargs.get('guid'))
def create(self, validated_data): auth = get_user_auth(self.context['request']) user_id = validated_data.pop('_id', '') address = validated_data.pop('email', '') provider = self.context['provider'] context = { 'referrer': auth.user } if user_id and address: raise ValidationError('Cannot specify both "id" and "email".') user = None if user_id: user = OSFUser.load(user_id) elif address: try: email = Email.objects.get(address=address.lower()) except Email.DoesNotExist: full_name = validated_data.pop('fullname', '') if not full_name: raise ValidationError('"full_name" is required when adding a moderator via email.') user = OSFUser.create_unregistered(full_name, email=address) user.add_unclaimed_record(provider, referrer=auth.user, given_name=full_name, email=address) user.save() claim_url = user.get_claim_url(provider._id, external=True) context['claim_url'] = claim_url else: user = email.user else: raise ValidationError('Must specify either "id" or "email".') if not user: raise ValidationError('Unable to find specified user.') context['user'] = user context['provider'] = provider if bool(get_perms(user, provider)): raise ValidationError('Specified user is already a moderator.') if 'claim_url' in context: template = mails.CONFIRM_EMAIL_MODERATION(provider) else: template = mails.MODERATOR_ADDED(provider) perm_group = validated_data.pop('permission_group', '') if perm_group not in GROUPS: raise ValidationError('Unrecognized permission_group') context['notification_settings_url'] = '{}reviews/preprints/{}/notifications'.format(DOMAIN, provider._id) context['provider_name'] = provider.name context['is_reviews_moderator_notification'] = True context['is_admin'] = perm_group == 'admin' provider.add_to_group(user, perm_group) setattr(user, 'permission_group', perm_group) # Allows reserialization mails.send_mail( user.username, template, mimetype='html', **context ) return user