##// 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:

r2056:678ed378 default
r2203:8a18c3c3 default
Show More
vcs_settings.mako
370 lines | 19.2 KiB | application/x-mako | MakoHtmlLexer
## snippet for displaying vcs settings
## usage:
## <%namespace name="vcss" file="/base/vcssettings.mako"/>
## ${vcss.vcs_settings_fields()}
<%def name="vcs_settings_fields(suffix='', svn_branch_patterns=None, svn_tag_patterns=None, repo_type=None, display_globals=False, allow_repo_location_change=False, **kwargs)">
% if display_globals:
<div class="panel panel-default">
<div class="panel-heading" id="general">
<h3 class="panel-title">${_('General')}<a class="permalink" href="#general"></a></h3>
</div>
<div class="panel-body">
<div class="field">
<div class="checkbox">
${h.checkbox('web_push_ssl' + suffix, 'True')}
<label for="web_push_ssl${suffix}">${_('Require SSL for vcs operations')}</label>
</div>
<div class="label">
<span class="help-block">${_('Activate to set RhodeCode to require SSL for pushing or pulling. If SSL certificate is missing it will return a HTTP Error 406: Not Acceptable.')}</span>
</div>
</div>
</div>
</div>
% endif
% if display_globals:
<div class="panel panel-default">
<div class="panel-heading" id="vcs-storage-options">
<h3 class="panel-title">${_('Main Storage Location')}<a class="permalink" href="#vcs-storage-options"></a></h3>
</div>
<div class="panel-body">
<div class="field">
<div class="inputx locked_input">
%if allow_repo_location_change:
${h.text('paths_root_path',size=59,readonly="readonly", class_="disabled")}
<span id="path_unlock" class="tooltip"
title="${h.tooltip(_('Click to unlock. You must restart RhodeCode in order to make this setting take effect.'))}">
<div class="btn btn-default lock_input_button"><i id="path_unlock_icon" class="icon-lock"></i></div>
</span>
%else:
${_('Repository location change is disabled. You can enable this by changing the `allow_repo_location_change` inside .ini file.')}
## form still requires this but we cannot internally change it anyway
${h.hidden('paths_root_path',size=30,readonly="readonly", class_="disabled")}
%endif
</div>
</div>
<div class="label">
<span class="help-block">${_('Filesystem location where repositories should be stored. After changing this value a restart and rescan of the repository folder are required.')}</span>
</div>
</div>
</div>
% endif
% if display_globals or repo_type in ['git', 'hg']:
<div class="panel panel-default">
<div class="panel-heading" id="vcs-hooks-options">
<h3 class="panel-title">${_('Internal Hooks')}<a class="permalink" href="#vcs-hooks-options"></a></h3>
</div>
<div class="panel-body">
<div class="field">
<div class="checkbox">
${h.checkbox('hooks_changegroup_repo_size' + suffix, 'True', **kwargs)}
<label for="hooks_changegroup_repo_size${suffix}">${_('Show repository size after push')}</label>
</div>
<div class="label">
<span class="help-block">${_('Trigger a hook that calculates repository size after each push.')}</span>
</div>
<div class="checkbox">
${h.checkbox('hooks_changegroup_push_logger' + suffix, 'True', **kwargs)}
<label for="hooks_changegroup_push_logger${suffix}">${_('Execute pre/post push hooks')}</label>
</div>
<div class="label">
<span class="help-block">${_('Execute Built in pre/post push hooks. This also executes rcextensions hooks.')}</span>
</div>
<div class="checkbox">
${h.checkbox('hooks_outgoing_pull_logger' + suffix, 'True', **kwargs)}
<label for="hooks_outgoing_pull_logger${suffix}">${_('Execute pre/post pull hooks')}</label>
</div>
<div class="label">
<span class="help-block">${_('Execute Built in pre/post pull hooks. This also executes rcextensions hooks.')}</span>
</div>
</div>
</div>
</div>
% endif
% if display_globals or repo_type in ['hg']:
<div class="panel panel-default">
<div class="panel-heading" id="vcs-hg-options">
<h3 class="panel-title">${_('Mercurial Settings')}<a class="permalink" href="#vcs-hg-options"></a></h3>
</div>
<div class="panel-body">
<div class="checkbox">
${h.checkbox('extensions_largefiles' + suffix, 'True', **kwargs)}
<label for="extensions_largefiles${suffix}">${_('Enable largefiles extension')}</label>
</div>
<div class="label">
% if display_globals:
<span class="help-block">${_('Enable Largefiles extensions for all repositories.')}</span>
% else:
<span class="help-block">${_('Enable Largefiles extensions for this repository.')}</span>
% endif
</div>
% if display_globals:
<div class="field">
<div class="input">
${h.text('largefiles_usercache' + suffix, size=59)}
</div>
</div>
<div class="label">
<span class="help-block">${_('Filesystem location where Mercurial largefile objects should be stored.')}</span>
</div>
% endif
<div class="checkbox">
${h.checkbox('phases_publish' + suffix, 'True', **kwargs)}
<label for="phases_publish${suffix}">${_('Set repositories as publishing') if display_globals else _('Set repository as publishing')}</label>
</div>
<div class="label">
<span class="help-block">${_('When this is enabled all commits in the repository are seen as public commits by clients.')}</span>
</div>
% if display_globals:
<div class="checkbox">
${h.checkbox('extensions_hgsubversion' + suffix,'True')}
<label for="extensions_hgsubversion${suffix}">${_('Enable hgsubversion extension')}</label>
</div>
<div class="label">
<span class="help-block">${_('Requires hgsubversion library to be installed. Allows cloning remote SVN repositories and migrates them to Mercurial type.')}</span>
</div>
% endif
<div class="checkbox">
${h.checkbox('extensions_evolve' + suffix, 'True', **kwargs)}
<label for="extensions_evolve${suffix}">${_('Enable evolve extension')}</label>
</div>
<div class="label">
% if display_globals:
<span class="help-block">${_('Enable evolve extension for all repositories.')}</span>
% else:
<span class="help-block">${_('Enable evolve extension for this repository.')}</span>
% endif
</div>
</div>
</div>
% endif
% if display_globals or repo_type in ['git']:
<div class="panel panel-default">
<div class="panel-heading" id="vcs-git-options">
<h3 class="panel-title">${_('Git Settings')}<a class="permalink" href="#vcs-git-options"></a></h3>
</div>
<div class="panel-body">
<div class="checkbox">
${h.checkbox('vcs_git_lfs_enabled' + suffix, 'True', **kwargs)}
<label for="vcs_git_lfs_enabled${suffix}">${_('Enable lfs extension')}</label>
</div>
<div class="label">
% if display_globals:
<span class="help-block">${_('Enable lfs extensions for all repositories.')}</span>
% else:
<span class="help-block">${_('Enable lfs extensions for this repository.')}</span>
% endif
</div>
% if display_globals:
<div class="field">
<div class="input">
${h.text('vcs_git_lfs_store_location' + suffix, size=59)}
</div>
</div>
<div class="label">
<span class="help-block">${_('Filesystem location where Git lfs objects should be stored.')}</span>
</div>
% endif
</div>
</div>
% endif
% if display_globals:
<div class="panel panel-default">
<div class="panel-heading" id="vcs-global-svn-options">
<h3 class="panel-title">${_('Global Subversion Settings')}<a class="permalink" href="#vcs-global-svn-options"></a></h3>
</div>
<div class="panel-body">
<div class="field">
<div class="checkbox">
${h.checkbox('vcs_svn_proxy_http_requests_enabled' + suffix, 'True', **kwargs)}
<label for="vcs_svn_proxy_http_requests_enabled${suffix}">${_('Proxy subversion HTTP requests')}</label>
</div>
<div class="label">
<span class="help-block">
${_('Subversion HTTP Support. Enables communication with SVN over HTTP protocol.')}
<a href="${h.route_url('enterprise_svn_setup')}" target="_blank">${_('SVN Protocol setup Documentation')}</a>.
</span>
</div>
</div>
<div class="field">
<div class="label">
<label for="vcs_svn_proxy_http_server_url">${_('Subversion HTTP Server URL')}</label><br/>
</div>
<div class="input">
${h.text('vcs_svn_proxy_http_server_url',size=59)}
% if c.svn_proxy_generate_config:
<span class="buttons">
<button class="btn btn-primary" id="vcs_svn_generate_cfg">${_('Generate Apache Config')}</button>
</span>
% endif
</div>
</div>
</div>
</div>
% endif
% if display_globals or repo_type in ['svn']:
<div class="panel panel-default">
<div class="panel-heading" id="vcs-svn-options">
<h3 class="panel-title">${_('Subversion Settings')}<a class="permalink" href="#vcs-svn-options"></a></h3>
</div>
<div class="panel-body">
<div class="field">
<div class="content" >
<label>${_('Repository patterns')}</label><br/>
</div>
</div>
<div class="label">
<span class="help-block">${_('Patterns for identifying SVN branches and tags. For recursive search, use "*". Eg.: "/branches/*"')}</span>
</div>
<div class="field branch_patterns">
<div class="input" >
<label>${_('Branches')}:</label><br/>
</div>
% if svn_branch_patterns:
% for branch in svn_branch_patterns:
<div class="input adjacent" id="${'id%s' % branch.ui_id}">
${h.hidden('branch_ui_key' + suffix, branch.ui_key)}
${h.text('branch_value_%d' % branch.ui_id + suffix, branch.ui_value, size=59, readonly="readonly", class_='disabled')}
% if kwargs.get('disabled') != 'disabled':
<span class="btn btn-x" onclick="ajaxDeletePattern(${branch.ui_id},'${'id%s' % branch.ui_id}')">
${_('Delete')}
</span>
% endif
</div>
% endfor
%endif
</div>
% if kwargs.get('disabled') != 'disabled':
<div class="field branch_patterns">
<div class="input" >
${h.text('new_svn_branch',size=59,placeholder='New branch pattern')}
</div>
</div>
% endif
<div class="field tag_patterns">
<div class="input" >
<label>${_('Tags')}:</label><br/>
</div>
% if svn_tag_patterns:
% for tag in svn_tag_patterns:
<div class="input" id="${'id%s' % tag.ui_id + suffix}">
${h.hidden('tag_ui_key' + suffix, tag.ui_key)}
${h.text('tag_ui_value_new_%d' % tag.ui_id + suffix, tag.ui_value, size=59, readonly="readonly", class_='disabled tag_input')}
% if kwargs.get('disabled') != 'disabled':
<span class="btn btn-x" onclick="ajaxDeletePattern(${tag.ui_id},'${'id%s' % tag.ui_id}')">
${_('Delete')}
</span>
%endif
</div>
% endfor
% endif
</div>
% if kwargs.get('disabled') != 'disabled':
<div class="field tag_patterns">
<div class="input" >
${h.text('new_svn_tag' + suffix, size=59, placeholder='New tag pattern')}
</div>
</div>
%endif
</div>
</div>
% else:
${h.hidden('new_svn_branch' + suffix, '')}
${h.hidden('new_svn_tag' + suffix, '')}
% endif
% if display_globals or repo_type in ['hg', 'git']:
<div class="panel panel-default">
<div class="panel-heading" id="vcs-pull-requests-options">
<h3 class="panel-title">${_('Pull Request Settings')}<a class="permalink" href="#vcs-pull-requests-options"></a></h3>
</div>
<div class="panel-body">
<div class="checkbox">
${h.checkbox('rhodecode_pr_merge_enabled' + suffix, 'True', **kwargs)}
<label for="rhodecode_pr_merge_enabled${suffix}">${_('Enable server-side merge for pull requests')}</label>
</div>
<div class="label">
<span class="help-block">${_('Note: when this feature is enabled, it only runs hooks defined in the rcextension package. Custom hooks added on the Admin -> Settings -> Hooks page will not be run when pull requests are automatically merged from the web interface.')}</span>
</div>
<div class="checkbox">
${h.checkbox('rhodecode_use_outdated_comments' + suffix, 'True', **kwargs)}
<label for="rhodecode_use_outdated_comments${suffix}">${_('Invalidate and relocate inline comments during update')}</label>
</div>
<div class="label">
<span class="help-block">${_('During the update of a pull request, the position of inline comments will be updated and outdated inline comments will be hidden.')}</span>
</div>
</div>
</div>
% endif
% if display_globals or repo_type in ['hg',]:
<div class="panel panel-default">
<div class="panel-heading" id="vcs-pull-requests-options">
<h3 class="panel-title">${_('Mercurial Pull Request Settings')}<a class="permalink" href="#vcs-hg-pull-requests-options"></a></h3>
</div>
<div class="panel-body">
## Specific HG settings
<div class="checkbox">
${h.checkbox('rhodecode_hg_use_rebase_for_merging' + suffix, 'True', **kwargs)}
<label for="rhodecode_hg_use_rebase_for_merging${suffix}">${_('Use rebase as merge strategy')}</label>
</div>
<div class="label">
<span class="help-block">${_('Use rebase instead of creating a merge commit when merging via web interface.')}</span>
</div>
<div class="checkbox">
${h.checkbox('rhodecode_hg_close_branch_before_merging' + suffix, 'True', **kwargs)}
<label for="rhodecode_hg_close_branch_before_merging{suffix}">${_('Close branch before merging it')}</label>
</div>
<div class="label">
<span class="help-block">${_('Close branch before merging it into destination branch. No effect when rebase strategy is use.')}</span>
</div>
</div>
</div>
% endif
## DISABLED FOR GIT FOR NOW as the rebase/close is not supported yet
## % if display_globals or repo_type in ['git']:
## <div class="panel panel-default">
## <div class="panel-heading" id="vcs-pull-requests-options">
## <h3 class="panel-title">${_('Git Pull Request Settings')}<a class="permalink" href="#vcs-git-pull-requests-options"> ¶</a></h3>
## </div>
## <div class="panel-body">
## <div class="checkbox">
## ${h.checkbox('rhodecode_git_use_rebase_for_merging' + suffix, 'True', **kwargs)}
## <label for="rhodecode_git_use_rebase_for_merging${suffix}">${_('Use rebase as merge strategy')}</label>
## </div>
## <div class="label">
## <span class="help-block">${_('Use rebase instead of creating a merge commit when merging via web interface.')}</span>
## </div>
##
## <div class="checkbox">
## ${h.checkbox('rhodecode_git_close_branch_before_merging' + suffix, 'True', **kwargs)}
## <label for="rhodecode_git_close_branch_before_merging{suffix}">${_('Delete branch after merging it')}</label>
## </div>
## <div class="label">
## <span class="help-block">${_('Delete branch after merging it into destination branch. No effect when rebase strategy is use.')}</span>
## </div>
## </div>
## </div>
## % endif
</%def>