comparison mercurial/hgweb/hgweb_mod.py @ 2509:6350b01d173f

merge with wsgi changes.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Tue, 27 Jun 2006 00:10:41 -0700
parents d0db3462d568 b73552a00b20
children 419c42223bee
comparison
equal deleted inserted replaced
2508:ab460a3f0e3a 2509:6350b01d173f
47 self.maxchanges = int(self.repo.ui.config("web", "maxchanges", 10)) 47 self.maxchanges = int(self.repo.ui.config("web", "maxchanges", 10))
48 self.maxfiles = int(self.repo.ui.config("web", "maxfiles", 10)) 48 self.maxfiles = int(self.repo.ui.config("web", "maxfiles", 10))
49 self.allowpull = self.repo.ui.configbool("web", "allowpull", True) 49 self.allowpull = self.repo.ui.configbool("web", "allowpull", True)
50 50
51 def archivelist(self, nodeid): 51 def archivelist(self, nodeid):
52 allowed = (self.repo.ui.config("web", "allow_archive", "") 52 allowed = self.repo.ui.configlist("web", "allow_archive")
53 .replace(",", " ").split())
54 for i in self.archives: 53 for i in self.archives:
55 if i in allowed or self.repo.ui.configbool("web", "allow" + i): 54 if i in allowed or self.repo.ui.configbool("web", "allow" + i):
56 yield {"type" : i, "node" : nodeid, "url": ""} 55 yield {"type" : i, "node" : nodeid, "url": ""}
57 56
58 def listfiles(self, files, mf): 57 def listfiles(self, files, mf):
814 req.write(z.flush()) 813 req.write(z.flush())
815 814
816 def do_archive(self, req): 815 def do_archive(self, req):
817 changeset = self.repo.lookup(req.form['node'][0]) 816 changeset = self.repo.lookup(req.form['node'][0])
818 type_ = req.form['type'][0] 817 type_ = req.form['type'][0]
819 allowed = self.repo.ui.config("web", "allow_archive", "").split() 818 allowed = self.repo.ui.configlist("web", "allow_archive")
820 if (type_ in self.archives and (type_ in allowed or 819 if (type_ in self.archives and (type_ in allowed or
821 self.repo.ui.configbool("web", "allow" + type_, False))): 820 self.repo.ui.configbool("web", "allow" + type_, False))):
822 self.archive(req, changeset, type_) 821 self.archive(req, changeset, type_)
823 return 822 return
824 823
842 return true if op allowed, else false. 841 return true if op allowed, else false.
843 default is policy to use if no config given.''' 842 default is policy to use if no config given.'''
844 843
845 user = req.env.get('REMOTE_USER') 844 user = req.env.get('REMOTE_USER')
846 845
847 deny = self.repo.ui.config('web', 'deny_' + op, '') 846 deny = self.repo.ui.configlist('web', 'deny_' + op)
848 deny = deny.replace(',', ' ').split()
849
850 if deny and (not user or deny == ['*'] or user in deny): 847 if deny and (not user or deny == ['*'] or user in deny):
851 return False 848 return False
852 849
853 allow = self.repo.ui.config('web', 'allow_' + op, '') 850 allow = self.repo.ui.configlist('web', 'allow_' + op)
854 allow = allow.replace(',', ' ').split()
855
856 return (allow and (allow == ['*'] or user in allow)) or default 851 return (allow and (allow == ['*'] or user in allow)) or default
857 852
858 def do_unbundle(self, req): 853 def do_unbundle(self, req):
859 def bail(response, headers={}): 854 def bail(response, headers={}):
860 length = int(req.env['CONTENT_LENGTH']) 855 length = int(req.env['CONTENT_LENGTH'])