def render(request, template, context): context['pages'] = user_profile.get_pages(request, context['profile']) for page in context['pages']: if page['is_active']: context['active_page'] = page break if request.user.is_authenticated(): is_authenticated_user = context['profile'].pk == request.user.pk else: is_authenticated_user = False context['is_authenticated_user'] = is_authenticated_user user_acl = request.user.acl if request.user.is_authenticated(): if is_authenticated_user: context['show_email'] = True else: context['show_email'] = user_acl['can_see_users_emails'] else: context['show_email'] = False context['state'] = get_user_state(context['profile'], user_acl) if request.user.is_authenticated(): try: allow_message_user(request.user, context['profile']) context['can_message'] = True except PermissionDenied as e: context['can_message'] = False context['cant_message_reason'] = e return django_render(request, template, context)
def render(request, template, context): request.frontend_context['PROFILE_PAGES'] = [] context['sections'] = user_profile.get_sections(request, context['profile']) for section in context['sections']: request.frontend_context['PROFILE_PAGES'].append({ 'name': unicode(section['name']), 'icon': section['icon'], 'meta': section.get('metadata'), 'component': section['component'], }) if section['is_active']: context['active_section'] = section if request.user.is_authenticated(): is_authenticated_user = context['profile'].pk == request.user.pk else: is_authenticated_user = False context['is_authenticated_user'] = is_authenticated_user user_acl = request.user.acl if request.user.is_authenticated(): if is_authenticated_user: context['show_email'] = True else: context['show_email'] = user_acl['can_see_users_emails'] else: context['show_email'] = False context['profile'].status = get_user_status(context['profile'], user_acl) if request.user.is_authenticated(): try: allow_message_user(request.user, context['profile']) context['can_message'] = True except PermissionDenied as e: context['can_message'] = False context['cant_message_reason'] = e request.frontend_context['PROFILE'] = UserProfileSerializer( context['profile'], context={ 'user': request.user }).data return django_render(request, template, context)
def clean(self): cleaned_data = super(ThreadParticipantsForm, self).clean() if not cleaned_data.get('users'): raise forms.ValidationError( _("You have to specify message recipients.")) clean_usernames = [] for name in cleaned_data['users'].split(','): clean_name = name.strip().lower() if clean_name == self.user.slug: raise forms.ValidationError( _("You can't addres message to yourself.")) if clean_name not in clean_usernames: clean_usernames.append(clean_name) max_participants = self.user.acl['max_private_thread_participants'] if max_participants and len(clean_usernames) > max_participants: message = ungettext( "You can't start private thread " "with more than than %(users)s user.", "You can't start private thread " "with more than than %(users)s users.", max_participants) message = message % {'users': max_participants} raise forms.ValidationError(message) users_qs = get_user_model().objects.filter(slug__in=clean_usernames) for user in users_qs: try: allow_message_user(self.user, user) except PermissionDenied as e: raise forms.ValidationError(unicode(e)) self.users_cache.append(user) if len(self.users_cache) != len(clean_usernames): valid_usernames = [u.slug for u in self.users_cache] invalid_usernames = [] for username in clean_usernames: if username not in valid_usernames: invalid_usernames.append(username) message = _("One or more message recipients could " "not be found: %(usernames)s") formats = {'usernames': ', '.join(invalid_usernames)} raise forms.ValidationError(message % formats) valid_usernames = [u.username for u in self.users_cache] cleaned_data['users'] = ','.join(valid_usernames) return cleaned_data
def clean(self): cleaned_data = super(ThreadParticipantsForm, self).clean() if not cleaned_data.get('users'): raise forms.ValidationError( _("You have to specify message recipients.")) clean_usernames = [] for name in cleaned_data['users'].split(','): clean_name = name.strip().lower() if clean_name == self.user.slug: raise forms.ValidationError( _("You can't addres message to yourself.")) if clean_name not in clean_usernames: clean_usernames.append(clean_name) max_participants = self.user.acl['max_private_thread_participants'] if max_participants and len(clean_usernames) > max_participants: message = ungettext("You can't start private thread " "with more than than %(users)s user.", "You can't start private thread " "with more than than %(users)s users.", max_participants) message = message % {'users': max_participants} raise forms.ValidationError(message) users_qs = get_user_model().objects.filter(slug__in=clean_usernames) for user in users_qs: try: allow_message_user(self.user, user) except PermissionDenied as e: raise forms.ValidationError(unicode(e)) self.users_cache.append(user) if len(self.users_cache) != len(clean_usernames): valid_usernames = [u.slug for u in self.users_cache] invalid_usernames = [] for username in clean_usernames: if username not in valid_usernames: invalid_usernames.append(username) message = _("One or more message recipients could " "not be found: %(usernames)s") formats = {'usernames': ', '.join(invalid_usernames)} raise forms.ValidationError(message % formats) valid_usernames = [u.username for u in self.users_cache] cleaned_data['users'] = ','.join(valid_usernames) return cleaned_data
def get_users(self, usernames): users = [] for user in UserModel.objects.filter(slug__in=usernames): try: allow_message_user(self.context['user'], user) except PermissionDenied as e: raise serializers.ValidationError(six.text_type(e)) users.append(user) if len(usernames) != len(users): invalid_usernames = set(usernames) - set([u.slug for u in users]) sorted_usernames = sorted(invalid_usernames) message = _("One or more users could not be found: %(usernames)s") raise serializers.ValidationError(message % {'usernames': ', '.join(sorted_usernames)}) return users
def render(request, template, context): request.frontend_context['PROFILE_PAGES'] = [] context['sections'] = user_profile.get_sections(request, context['profile']) for section in context['sections']: request.frontend_context['PROFILE_PAGES'].append({ 'name': unicode(section['name']), 'icon': section['icon'], 'meta': section.get('metadata'), 'component': section['component'], }) if section['is_active']: context['active_section'] = section if request.user.is_authenticated(): is_authenticated_user = context['profile'].pk == request.user.pk else: is_authenticated_user = False context['is_authenticated_user'] = is_authenticated_user user_acl = request.user.acl if request.user.is_authenticated(): if is_authenticated_user: context['show_email'] = True else: context['show_email'] = user_acl['can_see_users_emails'] else: context['show_email'] = False context['profile'].status = get_user_status(context['profile'], user_acl) if request.user.is_authenticated(): try: allow_message_user(request.user, context['profile']) context['can_message'] = True except PermissionDenied as e: context['can_message'] = False context['cant_message_reason'] = e request.frontend_context['PROFILE'] = UserProfileSerializer( context['profile'], context={'user': request.user}).data return django_render(request, template, context)
def get_users(self, usernames): users = [] for user in UserModel.objects.filter(slug__in=usernames): try: allow_message_user(self.context['user'], user) except PermissionDenied as e: raise serializers.ValidationError(str(e)) users.append(user) if len(usernames) != len(users): invalid_usernames = set(usernames) - set([u.slug for u in users]) sorted_usernames = sorted(invalid_usernames) message = _("One or more users could not be found: %(usernames)s") raise serializers.ValidationError( message % {'usernames': ', '.join(sorted_usernames)}) return users
def render(request, template, context): context['sections'] = user_profile.get_sections(request, context['profile']) for section in context['sections']: if section['is_active']: context['active_section'] = section break if request.user.is_authenticated(): is_authenticated_user = context['profile'].pk == request.user.pk else: is_authenticated_user = False context['is_authenticated_user'] = is_authenticated_user user_acl = request.user.acl if request.user.is_authenticated(): if is_authenticated_user: context['show_email'] = True else: context['show_email'] = user_acl['can_see_users_emails'] else: context['show_email'] = False context['status'] = get_user_status(context['profile'], user_acl) if request.user.is_authenticated(): try: allow_message_user(request.user, context['profile']) context['can_message'] = True except PermissionDenied as e: context['can_message'] = False context['cant_message_reason'] = e request.frontend_context['PROFILE'] = UserProfileSerializer( context['profile'], context={'user': request.user}).data return django_render(request, template, context)