~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/webapp/media.py

  • Committer: Matt Giuca
  • Date: 2010-02-25 06:52:48 UTC
  • mto: This revision was merged to the branch mainline in revision 1731.
  • Revision ID: matt.giuca@gmail.com-20100225065248-p1t8oys3olxtwdlg
project-form no longer assumes the type of context; pass an extra projectset value.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
from ivle.webapp.base.views import BaseView
29
29
from ivle.webapp.base.plugins import PublicViewPlugin, ViewPlugin, MediaPlugin
30
30
from ivle.webapp.errors import NotFound, Forbidden
31
 
from ivle.webapp.routing import INF
 
31
from ivle.webapp.publisher import INF
32
32
from ivle.webapp import ApplicationRoot
33
33
 
34
34
# This maps a media namespace to an external dependency directory (in this
94
94
            return os.path.join(plugindir, mediadir, self.path)
95
95
 
96
96
class MediaFileView(BaseView):
97
 
    permission = None
 
97
    def authorize(self, req):
 
98
        return True
98
99
 
99
100
    def render(self, req):
100
101
        # If it begins with ".." or separator, it's illegal. Die.
102
103
           self.context.path.startswith('/'):
103
104
            raise Forbidden()
104
105
 
105
 
        filename = self.context.filename
 
106
        filename = self.get_filename(req)
106
107
        if filename is None:
107
108
            raise NotFound()
108
109
 
127
128
        req.content_type = type
128
129
        req.sendfile(filename)
129
130
 
130
 
    def get_permissions(self, user):
131
 
        return set()
 
131
    def get_filename(self, req):
 
132
        return self.context.filename
132
133
 
133
134
def root_to_media(root, *segments):
134
135
    if segments[0].startswith('+'):
160
161
class Plugin(ViewPlugin, PublicViewPlugin):
161
162
    forward_routes = [(ApplicationRoot, '+media', root_to_media, INF)]
162
163
    views = [(MediaFile, '+index', MediaFileView)]
 
164
    public_forward_routes = forward_routes
 
165
    public_views = views