Changeset - 13b507b73190
[Not reviewed]
beta
0 2 0
Marcin Kuzminski - 15 years ago 2011-04-12 19:48:02
marcin@python-works.com
fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
2 files changed with 24 insertions and 13 deletions:
0 comments (0 inline, 0 general)
rhodecode/controllers/shortlog.py
Show inline comments
 
@@ -22,13 +22,13 @@
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
import logging
 

	
 
from pylons import tmpl_context as c, request
 
from pylons import tmpl_context as c, request, url
 

	
 
from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
 
from rhodecode.lib.base import BaseRepoController, render
 
from rhodecode.lib.helpers import RepoPage
 

	
 
log = logging.getLogger(__name__)
 
@@ -39,15 +39,21 @@ class ShortlogController(BaseRepoControl
 
    @LoginRequired()
 
    @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
 
                                   'repository.admin')
 
    def __before__(self):
 
        super(ShortlogController, self).__before__()
 

	
 
    def index(self):
 
    def index(self, repo_name):
 
        p = int(request.params.get('page', 1))
 
        size = int(request.params.get('size', 20))
 

	
 
        def url_generator(**kw):
 
            return url('shortlog_home', repo_name=repo_name, size=size, **kw)
 

	
 
        c.repo_changesets = RepoPage(c.rhodecode_repo, page=p,
 
                                     items_per_page=20)
 
                                                       items_per_page=size,
 
                                                       url=url_generator)
 
        c.shortlog_data = render('shortlog/shortlog_data.html')
 
        if request.params.get('partial'):
 
            return c.shortlog_data
 
        r = render('shortlog/shortlog.html')
 
        return r
rhodecode/controllers/summary.py
Show inline comments
 
@@ -67,32 +67,37 @@ class SummaryController(BaseRepoControll
 
        c.dbrepo = dbrepo = Repository.by_repo_name(repo_name)
 

	
 
        c.following = self.scm_model.is_following_repo(repo_name,
 
                                                self.rhodecode_user.user_id)
 

	
 
        def url_generator(**kw):
 
            return url('shortlog_home', repo_name=repo_name, **kw)
 
            return url('shortlog_home', repo_name=repo_name, size=10, **kw)
 

	
 
        c.repo_changesets = RepoPage(c.rhodecode_repo, page=1,
 
                                     items_per_page=10, url=url_generator)
 

	
 
        if self.rhodecode_user.username == 'default':
 
            #for default(anonymous) user we don't need to pass credentials
 
            username = ''
 
            password = ''
 
        else:
 
            username = str(self.rhodecode_user.username)
 
            password = '@'
 

	
 
        uri = u'%(proto)s://%(user)s%(pass)s%(host)s%(prefix)s/%(repo_name)s' \
 
                                    % {'proto': e.get('wsgi.url_scheme'),
 
                                       'user': username,
 
                                       'pass': password,
 
                                       'host': e.get('HTTP_HOST'),
 
                                       'prefix': e.get('SCRIPT_NAME'),
 
                                       'repo_name': repo_name, }
 
        if e.get('wsgi.url_scheme') == 'https':
 
            split_s = 'https://'
 
        else:
 
            split_s = 'http://'
 

	
 
        qualified_uri = [split_s] + [url.current(qualified=True)\
 
                                     .split(split_s)[-1]]
 
        uri = u'%(proto)s%(user)s%(pass)s%(rest)s' \
 
                % {'user': username,
 
                     'pass': password,
 
                     'proto': qualified_uri[0],
 
                     'rest': qualified_uri[1]}
 
        c.clone_repo_url = uri
 
        c.repo_tags = OrderedDict()
 
        for name, hash in c.rhodecode_repo.tags.items()[:10]:
 
            try:
 
                c.repo_tags[name] = c.rhodecode_repo.get_changeset(hash)
 
            except ChangesetError:
 
@@ -130,14 +135,14 @@ class SummaryController(BaseRepoControll
 
        if stats and stats.languages:
 
            c.no_data = False is dbrepo.enable_statistics
 
            lang_stats = json.loads(stats.languages)
 
            c.commit_data = stats.commit_activity
 
            c.overview_data = stats.commit_activity_combined
 

	
 
            lang_stats = [(x, {"count":y,
 
                               "desc":LANGUAGES_EXTENSIONS_MAP.get(x)})
 
            lang_stats = [(x, {"count": y,
 
                               "desc": LANGUAGES_EXTENSIONS_MAP.get(x)})
 
                          for x, y in lang_stats.items()]
 
            print lang_stats
 

	
 
            c.trending_languages = json.dumps(OrderedDict(
 
                                       sorted(lang_stats, reverse=True,
 
                                            key=lambda k: k[1])[:10]
0 comments (0 inline, 0 general)