Exemplo n.º 1
0
    def __before__(self, event):
        RedditController.__before__(self)

        if event:
            try:
                c.liveupdate_event = LiveUpdateEvent._byID(event)
            except tdb_cassandra.NotFound:
                pass

        if not c.liveupdate_event:
            self.abort404()

        if c.user_is_loggedin:
            c.liveupdate_permissions = \
                    c.liveupdate_event.get_permissions(c.user)

            # revoke some permissions from everyone after closing
            if c.liveupdate_event.state != "live":
                c.liveupdate_permissions = (c.liveupdate_permissions
                    .without("update")
                    .without("close")
                )

            if c.user_is_admin:
                c.liveupdate_permissions = ContributorPermissionSet.SUPERUSER
        else:
            c.liveupdate_permissions = ContributorPermissionSet.NONE
Exemplo n.º 2
0
 def __before__(self):
     try:
         c.error_page = True
         RedditController.__before__(self)
     except (HTTPMovedPermanently, HTTPFound):
         # ignore an attempt to redirect from an error page
         pass
     except:
         handle_awful_failure("Error occurred in ErrorController.__before__")
Exemplo n.º 3
0
 def __before__(self):
     try:
         c.error_page = True
         RedditController.__before__(self)
     except (HTTPMovedPermanently, HTTPFound):
         # ignore an attempt to redirect from an error page
         pass
     except Exception as e:
         handle_awful_failure("ErrorController.__before__: %r" % e)
    def pre(self):
        RedditController.pre(self)

        if not PLACE_SUBREDDIT.can_view(c.user):
            self.abort403()

        if c.user.in_timeout:
            self.abort403()

        if c.user._spam:
            self.abort403()
Exemplo n.º 5
0
    def __before__(self):
        try:
            c.error_page = True
            RedditController.__before__(self)
        except (HTTPMovedPermanently, HTTPFound):
            # ignore an attempt to redirect from an error page
            pass
        except Exception as e:
            handle_awful_failure("ErrorController.__before__: %r" % e)

        # c.error_page is special-cased in a couple places to bypass
        # c.site checks. We shouldn't allow the user to get here other
        # than through `middleware.py:error_mapper`.
        if not request.environ.get('pylons.error_call'):
            abort(403, "direct access to error controller disallowed")
Exemplo n.º 6
0
    def __before__(self):
        try:
            c.error_page = True
            RedditController.__before__(self)
        except (HTTPMovedPermanently, HTTPFound):
            # ignore an attempt to redirect from an error page
            pass
        except Exception as e:
            handle_awful_failure("ErrorController.__before__: %r" % e)

        # c.error_page is special-cased in a couple places to bypass
        # c.site checks. We shouldn't allow the user to get here other
        # than through `middleware.py:error_mapper`.
        if not request.environ.get('pylons.error_call'):
            abort(403, "direct access to error controller disallowed")
    def __before__(self, event):
        RedditController.__before__(self)

        if event:
            try:
                c.liveupdate_event = LiveUpdateEvent._byID(event)
            except tdb_cassandra.NotFound:
                pass

        if not c.liveupdate_event:
            self.abort404()

        c.liveupdate_can_manage = (c.liveupdate_event.state == "live" and
                                   (c.user_is_loggedin and c.user_is_admin))
        c.liveupdate_can_edit = (c.liveupdate_event.state == "live" and
                                 (c.user_is_loggedin and
                                  (c.liveupdate_event.is_editor(c.user) or
                                   c.user_is_admin)))
    def __before__(self, event):
        RedditController.__before__(self)

        if event:
            try:
                c.liveupdate_event = LiveUpdateEvent._byID(event)
            except tdb_cassandra.NotFound:
                pass

        if not c.liveupdate_event:
            self.abort404()

        if c.user_is_loggedin:
            c.liveupdate_permissions = \
                    c.liveupdate_event.get_permissions(c.user)

            # revoke some permissions from everyone after closing
            if c.liveupdate_event.state != "live":
                c.liveupdate_permissions = (c.liveupdate_permissions
                    .without("update")
                    .without("close")
                )

            if c.user_is_admin:
                c.liveupdate_permissions = ContributorPermissionSet.SUPERUSER
        else:
            c.liveupdate_permissions = ContributorPermissionSet.NONE

        if c.liveupdate_event.banned and not c.liveupdate_permissions:
            error_page = RedditError(
                title=_("this thread has been banned"),
                message="",
                image="subreddit-banned.png",
            )
            request.environ["usable_error_content"] = error_page.render()
            self.abort403()

        if (c.liveupdate_event.nsfw and
                not c.over18 and
                request.host != g.media_domain and  # embeds are special
                c.render_style == "html"):
            return self.intermediate_redirect("/over18", sr_path=False)
Exemplo n.º 9
0
    def __before__(self, event):
        RedditController.__before__(self)

        if event:
            try:
                c.liveupdate_event = LiveUpdateEvent._byID(event)
            except tdb_cassandra.NotFound:
                pass

        if not c.liveupdate_event:
            self.abort404()

        if c.user_is_loggedin:
            c.liveupdate_permissions = \
                    c.liveupdate_event.get_permissions(c.user)

            # revoke some permissions from everyone after closing
            if c.liveupdate_event.state != "live":
                c.liveupdate_permissions = (c.liveupdate_permissions
                    .without("update")
                    .without("close")
                )

            if c.user_is_admin:
                c.liveupdate_permissions = ContributorPermissionSet.SUPERUSER
        else:
            c.liveupdate_permissions = ContributorPermissionSet.NONE

        if c.liveupdate_event.banned and not c.liveupdate_permissions:
            error_page = RedditError(
                title=_("this thread has been banned"),
                message="",
                image="subreddit-banned.png",
            )
            request.environ["usable_error_content"] = error_page.render()
            self.abort403()

        if (c.liveupdate_event.nsfw and
                not c.over18 and
                request.host != g.media_domain and  # embeds are special
                c.render_style == "html"):
            return self.intermediate_redirect("/over18", sr_path=False)
Exemplo n.º 10
0
 def pre(self):
     set_extension(request.environ, "json")
     RedditController.pre(self)
Exemplo n.º 11
0
 def __after__(self):
     try:
         RedditController.__after__(self)
     except:
         handle_awful_failure("Error occurred in ErrorController.__after__")
Exemplo n.º 12
0
 def __call__(self, environ, start_response):
     try:
         return RedditController.__call__(self, environ, start_response)
     except:
         return handle_awful_failure("something really awful just happened.")
Exemplo n.º 13
0
 def __after__(self):
     try:
         RedditController.__after__(self)
     except:
         handle_awful_failure("Error occurred in ErrorController.__after__")
Exemplo n.º 14
0
Arquivo: error.py Projeto: 1900/reddit
 def __call__(self, environ, start_response):
     try:
         return RedditController.__call__(self, environ, start_response)
     except Exception as e:
         return handle_awful_failure("ErrorController.__call__: %r" % e)
Exemplo n.º 15
0
Arquivo: error.py Projeto: 1900/reddit
 def __after__(self): 
     try:
         RedditController.__after__(self)
     except Exception as e:
         handle_awful_failure("ErrorController.__after__: %r" % e)
Exemplo n.º 16
0
 def __call__(self, environ, start_response):
     try:
         return RedditController.__call__(self, environ, start_response)
     except:
         return handle_awful_failure(
             "something really awful just happened.")
Exemplo n.º 17
0
 def __after__(self):
     try:
         RedditController.__after__(self)
     except Exception as e:
         handle_awful_failure("ErrorController.__after__: %r" % e)
Exemplo n.º 18
0
 def pre(self):
     RedditController.pre(self)
     if not feature.is_enabled("robin"):
         self.abort404()
Exemplo n.º 19
0
 def pre(self):
     set_extension(request.environ, "json")
     RedditController.pre(self)
Exemplo n.º 20
0
 def pre(self):
     RedditController.pre(self)
     if not feature.is_enabled("robin"):
         self.abort404()
Exemplo n.º 21
0
 def pre(self):
     set_extension(request.environ, "json")
     self.check_for_bearer_token()
     RedditController.pre(self)
Exemplo n.º 22
0
 def __call__(self, environ, start_response):
     try:
         return RedditController.__call__(self, environ, start_response)
     except Exception as e:
         return handle_awful_failure("ErrorController.__call__: %r" % e)
Exemplo n.º 23
0
 def pre(self):
     set_extension(request.environ, "json")
     self.check_for_bearer_token()
     RedditController.pre(self)