def show_skyscraper_ads_on_page(context): request = context['request'] if not show_ads(request.user): return False country = utils.get_client_country_code(request) if country.lower() not in ('us', 'ca'): return False is_anon = not context['request'].user.is_authenticated image_owner_is_ultimate = False if context.template_name.startswith('registration/'): return False elif context.template_name == 'image/detail.html': for data in context.dicts: if 'image' in data: image_owner_is_ultimate = is_any_ultimate(data['image'].user) elif context.template_name in ( 'user/profile.html', 'user_collections_list.html', 'user_collections_detail.html', 'user/bookmarks.html', 'user/liked.html', 'user/following.html', 'user/followers.html', 'user/plots.html', ): for data in context.dicts: if 'requested_user' in data: image_owner_is_ultimate = is_any_ultimate(data['requested_user']) return (is_anon or is_free(request.user)) and not image_owner_is_ultimate and \ (context["COOKIELAW_ACCEPTED"] is not False or not show_cookie_banner(context.request))
def show_ads_on_page(context): request = context['request'] if not show_ads(request.user): return False if context.template_name == 'image/detail.html': for data in context.dicts: if 'image' in data: return not is_any_ultimate(data['image'].user) elif context.template_name in ( 'user/profile.html', 'user_collections_list.html', 'user_collections_detail.html', 'user/bookmarks.html', 'user/liked.html', 'user/following.html', 'user/followers.html', 'user/plots.html', ): for data in context.dicts: if 'requested_user' in data: return not is_any_ultimate(data['requested_user']) elif context.template_name == 'index/root.html': return show_ads(request.user) and is_free(request.user) elif context.template_name in ( 'search/search.html', 'top_picks.html', 'astrobin_apps_iotd/iotd_archive.html' ): return not request.user.is_authenticated or is_free(request.user) return False
def show_secondary_ad_on_page(context): request = context['request'] if not show_ads(request.user): return False country = utils.get_client_country_code(request) if country.lower() not in ('us', 'ca'): return False if context.template_name == 'image/detail.html': for data in context.dicts: if 'image' in data: return (not request.user.is_authenticated or is_free(request.user)) and \ not is_any_ultimate(data['image'].user) elif context.template_name in ( 'user/profile.html', 'user_collections_list.html', 'user_collections_detail.html', 'user/bookmarks.html', 'user/liked.html', 'user/following.html', 'user/followers.html', 'user/plots.html', ): for data in context.dicts: if 'requested_user' in data: return (not request.user.is_authenticated or is_free(request.user)) and \ not is_any_ultimate(data['requested_user']) return False
def show_adsense_ads(context): if not settings.ADSENSE_ENABLED: return False is_anon = not context['request'].user.is_authenticated() image_owner_is_ultimate = False if context.template_name.startswith('registration/'): return False elif context.template_name == 'image/detail.html': for data in context.dicts: if 'image' in data: image_owner_is_ultimate = is_any_ultimate(data['image'].user) elif context.template_name in ( 'user/profile.html', 'user_collections_list.html', 'user_collections_detail.html', 'user/bookmarks.html', 'user/liked.html', 'user/following.html', 'user/followers.html', 'user/plots.html', ): for data in context.dicts: if 'requested_user' in data: image_owner_is_ultimate = is_any_ultimate(data['requested_user']) return is_anon and not image_owner_is_ultimate and \ (context["COOKIELAW_ACCEPTED"] is not False or not show_cookie_banner(context.request)) and \ not context['request'].get_host().startswith("localhost")
def image_post_delete(sender, instance, **kwargs): def decrease_counter(user): user.userprofile.premium_counter -= 1 with transaction.atomic(): user.userprofile.save(keep_deleted=True) ImageIndex().remove_object(instance) try: if instance.uploaded > datetime.datetime.now() - relativedelta( hours=24): decrease_counter(instance.user) elif is_lite(instance.user): usersub = premium_get_valid_usersubscription(instance.user) usersub_created = usersub.expires - relativedelta(years=1) dt = instance.uploaded.date() - usersub_created if dt.days >= 0: decrease_counter(instance.user) elif is_lite_2020(instance.user) or \ is_premium(instance.user) or \ is_premium_2020(instance.user) or \ is_any_ultimate(instance.user): decrease_counter(instance.user) except IntegrityError: # Possibly the user is being deleted pass
def has_object_permission(self, request, view, obj: ImageRevision) -> bool: if request.method in permissions.SAFE_METHODS: return True if is_any_ultimate(request.user) or is_premium( request.user) or is_lite(request.user): return True revision_count: int = obj.image.revisions.count() if is_premium_2020(request.user): return revision_count < settings.PREMIUM_MAX_REVISIONS_PREMIUM_2020 if is_lite_2020(request.user): return revision_count < settings.PREMIUM_MAX_REVISIONS_LITE_2020 return revision_count < settings.PREMIUM_MAX_REVISIONS_FREE_2020
def post(self, request, *args, **kwargs): log.info("CkEditorUpload: user %d - requested file upload" % request.user.pk) if settings.READONLY_MODE: return self.upload_error( request, _("AstroBin is currently in read-only mode, because of server maintenance. Please try again soon!")) MB = 1024 * 1024 if is_any_lite(request.user): max_size = MB * 5 elif is_any_premium(request.user): max_size = MB * 10 elif is_any_ultimate(request.user): max_size = MB * 20 else: max_size = MB * 1 form = CkEditorUploadForm(request.POST, request.FILES) if not form.is_valid(): return self.upload_error(request) uploaded_file = request.FILES['upload'] if uploaded_file.size > max_size: return self.upload_error( request, _("The file is too large. Maximum size: %d MB." % (max_size / MB))) upload = form.save(commit=False) upload.user = request.user upload.filename = uploaded_file.name upload.filesize = uploaded_file.size upload.save(keep_deleted=True) return self.render_json_response({ "uploaded": 1, "fileName": upload.filename, "url": upload.upload.url, })
def has_object_permission(self, request, view, obj): if request.method in permissions.SAFE_METHODS: return True return is_any_ultimate(request.user) or is_premium(request.user)