예제 #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
예제 #2
0
파일: error.py 프로젝트: kurikintoki/reddit
 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__")
예제 #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()
예제 #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")
예제 #6
0
파일: error.py 프로젝트: rhit99900/reddit
    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)
예제 #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)
예제 #10
0
파일: multi.py 프로젝트: AHAMED750/reddit
 def pre(self):
     set_extension(request.environ, "json")
     RedditController.pre(self)
예제 #11
0
파일: error.py 프로젝트: xunzhang/reddit
 def __after__(self):
     try:
         RedditController.__after__(self)
     except:
         handle_awful_failure("Error occurred in ErrorController.__after__")
예제 #12
0
파일: error.py 프로젝트: kurikintoki/reddit
 def __call__(self, environ, start_response):
     try:
         return RedditController.__call__(self, environ, start_response)
     except:
         return handle_awful_failure("something really awful just happened.")
예제 #13
0
파일: error.py 프로젝트: kurikintoki/reddit
 def __after__(self):
     try:
         RedditController.__after__(self)
     except:
         handle_awful_failure("Error occurred in ErrorController.__after__")
예제 #14
0
파일: error.py 프로젝트: 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)
예제 #15
0
파일: error.py 프로젝트: 1900/reddit
 def __after__(self): 
     try:
         RedditController.__after__(self)
     except Exception as e:
         handle_awful_failure("ErrorController.__after__: %r" % e)
예제 #16
0
파일: error.py 프로젝트: xunzhang/reddit
 def __call__(self, environ, start_response):
     try:
         return RedditController.__call__(self, environ, start_response)
     except:
         return handle_awful_failure(
             "something really awful just happened.")
예제 #17
0
파일: error.py 프로젝트: rhit99900/reddit
 def __after__(self):
     try:
         RedditController.__after__(self)
     except Exception as e:
         handle_awful_failure("ErrorController.__after__: %r" % e)
예제 #18
0
 def pre(self):
     RedditController.pre(self)
     if not feature.is_enabled("robin"):
         self.abort404()
예제 #19
0
 def pre(self):
     set_extension(request.environ, "json")
     RedditController.pre(self)
예제 #20
0
 def pre(self):
     RedditController.pre(self)
     if not feature.is_enabled("robin"):
         self.abort404()
예제 #21
0
 def pre(self):
     set_extension(request.environ, "json")
     self.check_for_bearer_token()
     RedditController.pre(self)
예제 #22
0
파일: error.py 프로젝트: rhit99900/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)
예제 #23
0
파일: multi.py 프로젝트: ani625/reddit
 def pre(self):
     set_extension(request.environ, "json")
     self.check_for_bearer_token()
     RedditController.pre(self)