##// END OF EJS Templates
auth: don't break hashing in case of user with empty password....
auth: don't break hashing in case of user with empty password. In some cases such as LDAP user created via external scripts users might set the passwords to empty. The hashing uses the md5(password_hash) to store reference to detect password changes and forbid using the same password. In case of pure LDAP users this is not valid, and we shouldn't raise Errors in such case. This change makes it work for empty passwords now.

File last commit:

r2123:f43bc711 default
r2203:8a18c3c3 default
Show More
root.mako
183 lines | 7.4 KiB | application/x-mako | MakoHtmlLexer
templating: use .mako as extensions for template files.
r1282 ## -*- coding: utf-8 -*-
<!DOCTYPE html>
<%
c.template_context['repo_name'] = getattr(c, 'repo_name', '')
if hasattr(c, 'rhodecode_db_repo'):
c.template_context['repo_type'] = c.rhodecode_db_repo.repo_type
c.template_context['repo_landing_commit'] = c.rhodecode_db_repo.landing_rev[1]
if getattr(c, 'rhodecode_user', None) and c.rhodecode_user.user_id:
c.template_context['rhodecode_user']['username'] = c.rhodecode_user.username
c.template_context['rhodecode_user']['email'] = c.rhodecode_user.email
c.template_context['rhodecode_user']['notification_status'] = c.rhodecode_user.get_instance().user_data.get('notification_status', True)
security: use new safe escaped user attributes across the application....
r1815 c.template_context['rhodecode_user']['first_name'] = c.rhodecode_user.first_name
c.template_context['rhodecode_user']['last_name'] = c.rhodecode_user.last_name
templating: use .mako as extensions for template files.
r1282
c.template_context['visual']['default_renderer'] = h.get_visual_attr(c, 'default_renderer')
templates: expose default user data into templates for JS usage.
r1763 c.template_context['default_user'] = {
'username': h.DEFAULT_USER,
'user_id': 1
}
templating: use .mako as extensions for template files.
r1282 %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="${h.asset('js/vendors/webcomponentsjs/webcomponents-lite.min.js', ver=c.rhodecode_version_hash)}"></script>
<link rel="import" href="${h.asset('js/rhodecode-components.html', ver=c.rhodecode_version_hash)}">
<title>${self.title()}</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
security: use no-referrer for outside link to stop leaking potential parameters such...
r2039
templates: use safer way to extract user_agent from request....
r2094 % if 'safari' in (request.user_agent or '').lower():
security: use no-referrer for outside link to stop leaking potential parameters such...
r2039 <meta name="referrer" content="origin">
% else:
<meta name="referrer" content="origin-when-cross-origin">
% endif
templating: use .mako as extensions for template files.
r1282 <%def name="robots()">
<meta name="robots" content="index, nofollow"/>
</%def>
${self.robots()}
<link rel="icon" href="${h.asset('images/favicon.ico', ver=c.rhodecode_version_hash)}" sizes="16x16 32x32" type="image/png" />
## CSS definitions
<%def name="css()">
<link rel="stylesheet" type="text/css" href="${h.asset('css/style.css', ver=c.rhodecode_version_hash)}" media="screen"/>
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="${h.asset('css/ie.css', ver=c.rhodecode_version_hash)}" media="screen"/>
<![endif]-->
## EXTRA FOR CSS
${self.css_extra()}
</%def>
## CSS EXTRA - optionally inject some extra CSS stuff needed for specific websites
<%def name="css_extra()">
</%def>
${self.css()}
## JAVASCRIPT
<%def name="js()">
<script>
// setup Polymer options
window.Polymer = {lazyRegister: true, dom: 'shadow'};
// Load webcomponentsjs polyfill if browser does not support native Web Components
(function() {
'use strict';
var onload = function() {
// For native Imports, manually fire WebComponentsReady so user code
// can use the same code path for native and polyfill'd imports.
if (!window.HTMLImports) {
document.dispatchEvent(
new CustomEvent('WebComponentsReady', {bubbles: true})
);
}
};
var webComponentsSupported = (
'registerElement' in document
&& 'import' in document.createElement('link')
&& 'content' in document.createElement('template')
);
if (!webComponentsSupported) {
} else {
onload();
}
})();
</script>
<script src="${h.asset('js/rhodecode/i18n/%s.js' % c.language, ver=c.rhodecode_version_hash)}"></script>
<script type="text/javascript">
// register templateContext to pass template variables to JS
var templateContext = ${h.json.dumps(c.template_context)|n};
home: moved home and repo group views into pyramid....
r1774 var APPLICATION_URL = "${h.route_path('home').rstrip('/')}";
templating: use .mako as extensions for template files.
r1282 var ASSET_URL = "${h.asset('')}";
var DEFAULT_RENDERER = "${h.get_visual_attr(c, 'default_renderer')}";
var CSRF_TOKEN = "${getattr(c, 'csrf_token', '')}";
var APPENLIGHT = {
enabled: ${'true' if getattr(c, 'appenlight_enabled', False) else 'false'},
key: '${getattr(c, "appenlight_api_public_key", "")}',
% if getattr(c, 'appenlight_server_url', None):
serverUrl: '${getattr(c, "appenlight_server_url", "")}',
% endif
requestInfo: {
% if getattr(c, 'rhodecode_user', None):
ip: '${c.rhodecode_user.ip_addr}',
username: '${c.rhodecode_user.username}'
% endif
},
tags: {
rhodecode_version: '${c.rhodecode_version}',
rhodecode_edition: '${c.rhodecode_edition}'
}
};
</script>
<%include file="/base/plugins_base.mako"/>
<!--[if lt IE 9]>
js: organized and updated JS packages....
r2123 <script language="javascript" type="text/javascript" src="${h.asset('js/src/excanvas.min.js')}"></script>
templating: use .mako as extensions for template files.
r1282 <![endif]-->
<script language="javascript" type="text/javascript" src="${h.asset('js/rhodecode/routes.js', ver=c.rhodecode_version_hash)}"></script>
helpers: remove usage of pylons session.
r2095 <script> var alertMessagePayloads = ${h.flash.json_alerts(request=request)|n}; </script>
templating: use .mako as extensions for template files.
r1282 ## avoide escaping the %N
<script language="javascript" type="text/javascript" src="${h.asset('js/rhodecode-components.js', ver=c.rhodecode_version_hash)}"></script>
<script>CodeMirror.modeURL = "${h.asset('') + 'js/mode/%N/%N.js?ver='+c.rhodecode_version_hash}";</script>
## JAVASCRIPT EXTRA - optionally inject some extra JS for specificed templates
${self.js_extra()}
<script type="text/javascript">
Rhodecode = (function() {
function _Rhodecode() {
this.comments = new CommentsController();
}
return new _Rhodecode();
})();
$(document).ready(function(){
show_more_event();
timeagoActivate();
clipboard: added dummy placeholders for copying commits/paths via clipboard.js
r1935 clipboardActivate();
templating: use .mako as extensions for template files.
r1282 })
</script>
</%def>
## JAVASCRIPT EXTRA - optionally inject some extra JS for specificed templates
<%def name="js_extra()"></%def>
${self.js()}
<%def name="head_extra()"></%def>
${self.head_extra()}
## extra stuff
%if c.pre_code:
${c.pre_code|n}
%endif
</head>
<body id="body">
<noscript>
<div class="noscript-error">
${_('Please enable JavaScript to use RhodeCode Enterprise')}
</div>
</noscript>
## IE hacks
<!--[if IE 7]>
<script>$(document.body).addClass('ie7')</script>
<![endif]-->
<!--[if IE 8]>
<script>$(document.body).addClass('ie8')</script>
<![endif]-->
<!--[if IE 9]>
<script>$(document.body).addClass('ie9')</script>
<![endif]-->
${next.body()}
%if c.post_code:
${c.post_code|n}
%endif
<rhodecode-app></rhodecode-app>
</body>
</html>