diff options
-rw-r--r-- | freeipa.spec.in | 8 | ||||
-rw-r--r-- | install/html/Makefile.am | 2 | ||||
-rw-r--r-- | install/html/browserconfig.html | 84 | ||||
-rw-r--r-- | install/html/ffconfig.js | 116 | ||||
-rw-r--r-- | install/html/ffconfig_page.js | 148 | ||||
-rw-r--r-- | install/html/ipa_error.css | 6 | ||||
-rw-r--r-- | install/html/jsl.conf | 131 | ||||
-rw-r--r-- | install/html/ssbrowser.html | 27 | ||||
-rw-r--r-- | install/html/unauthorized.html | 31 | ||||
-rw-r--r-- | install/ui/ipa.css | 37 | ||||
-rw-r--r-- | install/ui/ipa.js | 4 | ||||
-rw-r--r-- | install/ui/test/data/ipa_init.json | 2 | ||||
-rw-r--r-- | ipalib/plugins/internal.py | 2 |
13 files changed, 550 insertions, 48 deletions
diff --git a/freeipa.spec.in b/freeipa.spec.in index 136eea0d2..7c8314a04 100644 --- a/freeipa.spec.in +++ b/freeipa.spec.in @@ -398,6 +398,10 @@ mkdir -p %{buildroot}/%{_sysconfdir}/ipa/html mkdir -p %{buildroot}/%{_localstatedir}/cache/ipa/sysrestore mkdir -p %{buildroot}/%{_localstatedir}/cache/ipa/sysupgrade mkdir %{buildroot}%{_usr}/share/ipa/html/ +ln -s ../../../..%{_sysconfdir}/ipa/html/ffconfig.js \ + %{buildroot}%{_usr}/share/ipa/html/ffconfig.js +ln -s ../../../..%{_sysconfdir}/ipa/html/ffconfig_page.js \ + %{buildroot}%{_usr}/share/ipa/html/ffconfig_page.js ln -s ../../../..%{_sysconfdir}/ipa/html/ssbrowser.html \ %{buildroot}%{_usr}/share/ipa/html/ssbrowser.html ln -s ../../../..%{_sysconfdir}/ipa/html/unauthorized.html \ @@ -625,6 +629,8 @@ fi %dir %{_usr}/share/ipa/ffextension/locale/en-US %{_usr}/share/ipa/ffextension/locale/en-US/kerberosauth.properties %dir %{_usr}/share/ipa/html +%{_usr}/share/ipa/html/ffconfig.js +%{_usr}/share/ipa/html/ffconfig_page.js %{_usr}/share/ipa/html/ssbrowser.html %{_usr}/share/ipa/html/browserconfig.html %{_usr}/share/ipa/html/unauthorized.html @@ -653,6 +659,8 @@ fi %{_usr}/share/ipa/ui/images/*.gif %dir %{_sysconfdir}/ipa %dir %{_sysconfdir}/ipa/html +%config(noreplace) %{_sysconfdir}/ipa/html/ffconfig.js +%config(noreplace) %{_sysconfdir}/ipa/html/ffconfig_page.js %config(noreplace) %{_sysconfdir}/ipa/html/ssbrowser.html %config(noreplace) %{_sysconfdir}/ipa/html/ipa_error.css %config(noreplace) %{_sysconfdir}/ipa/html/unauthorized.html diff --git a/install/html/Makefile.am b/install/html/Makefile.am index 46e8683c8..0377ce755 100644 --- a/install/html/Makefile.am +++ b/install/html/Makefile.am @@ -2,6 +2,8 @@ NULL = appdir = $(IPA_SYSCONF_DIR)/html app_DATA = \ + ffconfig.js \ + ffconfig_page.js \ ssbrowser.html \ browserconfig.html \ unauthorized.html \ diff --git a/install/html/browserconfig.html b/install/html/browserconfig.html index aa978f040..046a82490 100644 --- a/install/html/browserconfig.html +++ b/install/html/browserconfig.html @@ -4,19 +4,15 @@ <meta charset="utf-8"> <title>IPA: Identity Policy Audit</title> - <script type="text/javascript" src="../ui/jquery.js"></script> <link rel="stylesheet" type="text/css" href="../ui/jquery-ui.css" /> <link rel="stylesheet" type="text/css" href="../ui/ipa.css" /> <link rel="stylesheet" type="text/css" href="ipa_error.css" /> - <script type="text/javascript"> - $(document).ready(function() { - if (navigator.userAgent.indexOf("Firefox") != -1 || - navigator.userAgent.indexOf("SeaMonkey") != -1) { - $('.textblockkrb').css('display', 'block'); - } - }); - </script> + <script type="text/javascript" src="../ui/jquery.js"></script> + <script type="text/javascript" src="../ui/jquery-ui.js"></script> + <script type="text/javascript" src="krb.js"></script> + <script type="text/javascript" src="ffconfig.js"></script> + <script type="text/javascript" src="ffconfig_page.js"></script> </head> <body class="info-page"> @@ -27,11 +23,71 @@ <img src="../ui/images/ipa-logo.png" /><img src="../ui/images/ipa-banner.png" /> </div> - <div class="textblockkrb" style="display: none;"> - <h1>Configure Browser</h1> - <p> Click the below button to configure your browser </p> - <object data="jar:/ipa/errors/configure.jar!/preferences.html" - type="text/html" class="browser-config"></object> + <div class="textblockkrb browser-config"> + <h1>Firefox configuration</h1> + + <div id="wrongbrowser" style="display:none"> + <h2>Wrong Browser!</h2> + <p> + <a href="ssbrowser.html" id="notfirefox-link">Proceed to configuration for other browsers</a> + </p> + <p> + You are not using Firefox. Please use configuration page for other browsers. + </p> + </div> + + <div id="step1"> + <h2>Step 1</h2> + <p> + <a href="ca.crt" id="ca-link">Import Certificate Authority certificate</a> + </p> + <p> + Make sure you select <b>all three</b> checkboxes. + </p> + </div> + + <div id="step2a" style="display:none"> + <h2>Step 2a</h2> + <p> + <a href="ssbrowser.html#oldfirefox" id="oldfirefox-link">Proceed to configuration page for older versions of Firefox</a> + </p> + <!--<p id="older-compatible"> + Your version of Firefox can be configured by an older method. You don't have to use the Kerberos Configuration extension. + </p>--> + <p id="older-required"> + Your version of Firefox is not compatible with configuration method on this page. Please use configuration page for older versions of Firefox. + <p> + </div> + + <div id="step2"> + <h2>Step 2</h2> + <div id="ext-installed"> + <p> + <a href="kerberosauth.xpi" id="reinstall-link">Re-install extension</a> + </p> + <p> + Extension installed. You can proceed to Step 3. + </p> + </div> + <div id="ext-missing"> + <p><a href="kerberosauth.xpi" id="install-link">Install Kerberos Configuration Firefox extension</a></p> + <p>Kerberos Configuration extension is required for Step 3</p> + </div> + </div> + + <div id="step3"> + <h2>Step 3</h2> + <p><a href="#configure-browser" id="configure-link">Configure browser</a></p> + <p id="config-success" style="display:none">Browser successfully configured</p> + <p id="config-aborted" style="display:none">Configuration aborted</p> + <p id="config-noext" style="display:none">Configuration was not successful, extension isn't installed or is disabled. Please proceed to step 2.</p> + <p id="config-error" style="display:none">Configuration was not successful, unknown error uccured.</p> + </div> + + <div id="step4"> + <h2>Step 4</h2> + <p><a href="../ui/index.html" id="return-link">Return to Web UI</a></p> + </div> </div> </div> diff --git a/install/html/ffconfig.js b/install/html/ffconfig.js new file mode 100644 index 000000000..3c9f34c77 --- /dev/null +++ b/install/html/ffconfig.js @@ -0,0 +1,116 @@ +/* Authors: + * Petr Vobornik <pvoborni@redhat.com> + * + * Copyright (C) 2012 Red Hat + * see file 'COPYING' for use and warranty information + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +var IPA = IPA || {}; + +IPA.browser_config = { + + configure_firefox: function(domain) { + + var self = this; + + domain = domain || self.get_domain(); + + self.send_message({ + method: 'configure', + predefined: 'ipa', + trusted_uris: domain + }); + }, + + + get_configure_result: function() { + + var self = this; + + var el = self.get_data_element(); + + var answer = el.getAttribute('answer'); + + return answer; + }, + + get_domain: function() { + return "."+IPA_DOMAIN; + }, + + send_message: function(options) { + + options = options || {}; + + var self = this; + + self.clear_data_element(); + var opt_element = self.get_data_element(); + + for (var opt in options) { + opt_element.setAttribute(opt, options[opt]); + } + + var msg_evt = document.createEvent('HTMLEvents'); + msg_evt.initEvent('kerberos-auth-config', true, false); + opt_element.dispatchEvent(msg_evt); + }, + + get_data_element: function() { + + var els = document.getElementsByTagName('kerberosauthdataelement'); + var element; + + if (els.length === 0) { + element = document.createElement('kerberosauthdataelement'); + document.documentElement.appendChild(element); + } else { + element = els[0]; + } + + return element; + }, + + clear_data_element: function() { + + var self = this; + + var el = self.get_data_element(); + var to_remove = []; + + for (var i=0; i<el.attributes.length; i++) { + to_remove.push(el.attributes[i].name); + } + + for (i=0; i<to_remove.length; i++) { + el.removeAttribute(to_remove[i]); + } + }, + + extension_installed: function() { + + var self = this; + + self.send_message({ + method: 'can_configure' + }); + + var element = self.get_data_element(); + var ext_installed = element.getAttribute('answer') === 'true'; + return ext_installed; + } + +};
\ No newline at end of file diff --git a/install/html/ffconfig_page.js b/install/html/ffconfig_page.js new file mode 100644 index 000000000..1c8386c5a --- /dev/null +++ b/install/html/ffconfig_page.js @@ -0,0 +1,148 @@ +/* Authors: + * Petr Vobornik <pvoborni@redhat.com> + * + * Copyright (C) 2012 Red Hat + * see file 'COPYING' for use and warranty information + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + + $(document).ready(function() { + + var set_enabled = function(steps, enabled) { + + var method; + + if (enabled) method = function(el) { el.removeClass('ui-state-disabled'); }; + else method = function(el) { el.addClass('ui-state-disabled'); }; + + for (var i=0; i<steps.length; i++) { + method($(steps[i])); + } + }; + + var show_installed = function(installed) { + + if (installed) { + $('#ext-installed').show(); + $('#ext-missing').hide(); + } else { + $('#ext-installed').hide(); + $('#ext-missing').show(); + } + set_enabled(['#step3'], installed); + }; + + var install = function(event) { + + window.location = $(event.target).parent().attr('href'); + check_until_installed(); + return false; + }; + + var check_until_installed = function() { + + var installed = IPA.browser_config.extension_installed(); + show_installed(installed); + + if (!installed) { + window.setTimeout(function() { + check_until_installed(); + }, 300); + } + }; + + var configure = function() { + IPA.browser_config.configure_firefox(); + var result = IPA.browser_config.get_configure_result(); + var installed = IPA.browser_config.extension_installed(); + + $('#config-success').hide(); + $('#config-aborted').hide(); + $('#config-noext').hide(); + $('#config-error').hide(); + + if (result === 'configured') { + $('#config-success').show(); + } else if (result == 'aborted') { + $('#config-aborted').show(); + } else if (!installed) { + $('#config-noext').show(); + } else { + $('#config-error').show(); + } + return false; + }; + + var check_version = function() { + + var firefox = $.browser.mozilla === true; + var version = $.browser.version; + + if (!firefox) { + $('#wrongbrowser').show(); + set_enabled(['#step1', '#step2', '#step3'], false); + } else { + // Disable for all version of FF older than 15. Theoretically + // the extension is compatible with version 3.6, 10 and later + // FF 4-9 are not compatible because there is an error in loading + // resource from chrome.manifest + if (compare_version(version, '15') === -1) { + $('#step2a').show(); + set_enabled(['#step2', '#step3'], false); + }// else if (compare_version(version, '15') === -1) { +// $('#step2a').show(); +// $('#older-compatible').show(); +// $('#older-required').hide(); +// } + } + }; + + var compare_version = function(a, b) { + + var only_digits =/[^\d.]/g; + + var a_parts = a.replace(only_digits, '').split('.'); + var b_parts = b.replace(only_digits, '').split('.'); + + for (var i=0; i<a_parts.length && i<b_parts.length; i++) { + var a_num = Number(a_parts[i]); + var b_num = Number(b_parts[i]); + + if (a_num > b_num) return 1; + else if (a_num < b_num) return -1; + } + + if (a_parts.length !== b_parts.length) { + return a_parts.length > b_parts.length ? 1 : -1; + } + + return 0; + }; + + $('#install-link').click(install); + $('#reinstall-link').click(install); + $('#configure-link').click(configure); + + $('#notfirefox-link').button(); + $('#ca-link').button(); + $('#oldfirefox-link').button(); + $('#reinstall-link').button(); + $('#install-link').button(); + $('#configure-link').button(); + $('#return-link').button(); + + check_version(); + show_installed(IPA.browser_config.extension_installed()); +});
\ No newline at end of file diff --git a/install/html/ipa_error.css b/install/html/ipa_error.css index 60ad729e0..6cf70d885 100644 --- a/install/html/ipa_error.css +++ b/install/html/ipa_error.css @@ -18,6 +18,12 @@ margin-top: -3em; } + +.ssbrowser h3 { + font-size: 1.1em; + margin-bottom: 1em; +} + /* Browser configuration */ object.browser-config { diff --git a/install/html/jsl.conf b/install/html/jsl.conf new file mode 100644 index 000000000..b9a8a9780 --- /dev/null +++ b/install/html/jsl.conf @@ -0,0 +1,131 @@ +# +# Configuration File for JavaScript Lint 0.3.0 +# Developed by Matthias Miller (http://www.JavaScriptLint.com) +# +# This configuration file can be used to lint a collection of scripts, or to enable +# or disable warnings for scripts that are linted via the command line. +# + +### Warnings +# Enable or disable warnings based on requirements. +# Use "+WarningName" to display or "-WarningName" to suppress. +# ++no_return_value # function {0} does not always return a value ++duplicate_formal # duplicate formal argument {0} ++equal_as_assign # test for equality (==) mistyped as assignment (=)?{0} ++var_hides_arg # variable {0} hides argument ++redeclared_var # redeclaration of {0} {1} ++anon_no_return_value # anonymous function does not always return a value ++missing_semicolon # missing semicolon ++meaningless_block # meaningless block; curly braces have no impact ++comma_separated_stmts # multiple statements separated by commas (use semicolons?) ++unreachable_code # unreachable code ++missing_break # missing break statement ++missing_break_for_last_case # missing break statement for last case in switch ++comparison_type_conv # comparisons against null, 0, true, false, or an empty string allowing implicit type conversion (use === or !==) ++inc_dec_within_stmt # increment (++) and decrement (--) operators used as part of greater statement ++useless_void # use of the void type may be unnecessary (void is always undefined) ++multiple_plus_minus # unknown order of operations for successive plus (e.g. x+++y) or minus (e.g. x---y) signs ++use_of_label # use of label +-block_without_braces # block statement without curly braces ++leading_decimal_point # leading decimal point may indicate a number or an object member ++trailing_decimal_point # trailing decimal point may indicate a number or an object member ++octal_number # leading zeros make an octal number ++nested_comment # nested comment ++misplaced_regex # regular expressions should be preceded by a left parenthesis, assignment, colon, or comma ++ambiguous_newline # unexpected end of line; it is ambiguous whether these lines are part of the same statement ++empty_statement # empty statement or extra semicolon +-missing_option_explicit # the "option explicit" control comment is missing ++partial_option_explicit # the "option explicit" control comment, if used, must be in the first script tag ++dup_option_explicit # duplicate "option explicit" control comment ++useless_assign # useless assignment ++ambiguous_nested_stmt # block statements containing block statements should use curly braces to resolve ambiguity ++ambiguous_else_stmt # the else statement could be matched with one of multiple if statements (use curly braces to indicate intent) ++missing_default_case # missing default case in switch statement ++duplicate_case_in_switch # duplicate case in switch statements ++default_not_at_end # the default case is not at the end of the switch statement ++legacy_cc_not_understood # couldn't understand control comment using /*@keyword@*/ syntax ++jsl_cc_not_understood # couldn't understand control comment using /*jsl:keyword*/ syntax ++useless_comparison # useless comparison; comparing identical expressions ++with_statement # with statement hides undeclared variables; use temporary variable instead ++trailing_comma_in_array # extra comma is not recommended in array initializers ++assign_to_function_call # assignment to a function call ++parseint_missing_radix # parseInt missing radix parameter + + +### Output format +# Customize the format of the error message. +# __FILE__ indicates current file path +# __FILENAME__ indicates current file name +# __LINE__ indicates current line +# __ERROR__ indicates error message +# +# Visual Studio syntax (default): ++output-format __FILE__(__LINE__): __ERROR__ +# Alternative syntax: +#+output-format __FILE__:__LINE__: __ERROR__ + + +### Context +# Show the in-line position of the error. +# Use "+context" to display or "-context" to suppress. +# ++context + + +### Semicolons +# By default, assignments of an anonymous function to a variable or +# property (such as a function prototype) must be followed by a semicolon. +# ++lambda_assign_requires_semicolon + + +### Control Comments +# Both JavaScript Lint and the JScript interpreter confuse each other with the syntax for +# the /*@keyword@*/ control comments and JScript conditional comments. (The latter is +# enabled in JScript with @cc_on@). The /*jsl:keyword*/ syntax is preferred for this reason, +# although legacy control comments are enabled by default for backward compatibility. +# ++legacy_control_comments + + +### JScript Function Extensions +# JScript allows member functions to be defined like this: +# function MyObj() { /*constructor*/ } +# function MyObj.prototype.go() { /*member function*/ } +# +# It also allows events to be attached like this: +# function window::onload() { /*init page*/ } +# +# This is a Microsoft-only JavaScript extension. Enable this setting to allow them. +# +-jscript_function_extensions + + +### Defining identifiers +# By default, "option explicit" is enabled on a per-file basis. +# To enable this for all files, use "+always_use_option_explicit" +#-always_use_option_explicit ++always_use_option_explicit + +# Define certain identifiers of which the lint is not aware. +# (Use this in conjunction with the "undeclared identifier" warning.) +# +# Common uses for webpages might be: ++define window ++define document ++define alert ++define $ ++define jQuery ++define IPA_DOMAIN ++define IPA_REALM ++define IPA + +### Files +# Specify which files to lint +# Use "+recurse" to enable recursion (disabled by default). +# To add a set of files, use "+process FileName", "+process Folder\Path\*.js", +# or "+process Folder\Path\*.htm". +# ++process ffconfig.js ++process ffconfig_page.js
\ No newline at end of file diff --git a/install/html/ssbrowser.html b/install/html/ssbrowser.html index f77402aa3..285b1d123 100644 --- a/install/html/ssbrowser.html +++ b/install/html/ssbrowser.html @@ -4,10 +4,22 @@ <meta charset="utf-8"> <title>IPA: Identity Policy Audit</title> - <script type="text/javascript" src="../ui/jquery.js"></script> <link rel="stylesheet" type="text/css" href="../ui/jquery-ui.css" /> <link rel="stylesheet" type="text/css" href="../ui/ipa.css" /> <link rel="stylesheet" type="text/css" href="ipa_error.css" /> + + <script type="text/javascript" src="../ui/jquery.js"></script> + <script type="text/javascript" src="krb.js"></script> + <script type="text/javascript"> + $(document).ready(function() { + var domain = '.' + (IPA_DOMAIN || 'example.com'); + $('.example-domain').text(domain); + + if ($.browser.mozilla) { + $("#configurefirefox").show(); + } + }); + </script> </head> <body class="info-page"> @@ -50,13 +62,20 @@ <ul><li> 1. In the address bar of Firefox, type <tt>about:config</tt> to display the list of current configuration options.</li> <li> 2. In the Filter field, type <tt>negotiate</tt> to restrict the list of options. </li> <li> 3. Double-click the <tt>network.negotiate-auth.trusted-uris</tt> entry to display the Enter string value dialog box. </li> - <li> 4. Enter the name of the domain against which you want to authenticate, for example, <tt>.example.com.</tt> </li> - <li> 5. Repeat the above procedure for the <tt>network.negotiate-auth.delegation-uris</tt> entry, using the same domain. </li> + <li> 4. Enter the name of the domain against which you want to authenticate, for example, <tt class="example-domain">.example.com.</tt> </li> + <li> 5. Optional: Repeat the above procedure for the <tt>network.negotiate-auth.delegation-uris</tt> entry, using the same domain. </li> <br> <li><strong> You are all set. </strong></li> </ul> - + <h3><a name="oldfirefox"></a> Automatic Configuration of older versions</h3> + <p>You can configure older versions of Firefox (up to version 14) using signed code. Use <a href="browserconfig.html">Firefox configuration page</a> for newer versions.</p> + <ul> + <li>1. Import <a href="ca.crt">CA certificate</a>. Make sure you checked all three checkboxes.</li> + <li>2. Click on "Configure Browser" button below.</li> + <li id="configurefirefox" style="display:none"><object data="jar:/ipa/errors/configure.jar!/preferences.html" + type="text/html" class="browser-config"></object></li> + </ul> </div> </div> diff --git a/install/html/unauthorized.html b/install/html/unauthorized.html index 00d795077..5bff2d28b 100644 --- a/install/html/unauthorized.html +++ b/install/html/unauthorized.html @@ -9,16 +9,6 @@ <link rel="stylesheet" type="text/css" href="../ui/jquery-ui.css" /> <link rel="stylesheet" type="text/css" href="../ui/ipa.css" /> <link rel="stylesheet" type="text/css" href="ipa_error.css" /> - - <script type="text/javascript"> - $(document).ready(function() { - $("#import-cert-auth-link").click(function() { - $("#first-time").css("display", "none"); - $("#next-link").css("display", "block"); - return true; - }); - }); - </script> </head> <body class="info-page"> @@ -32,24 +22,19 @@ <div class="textblockkrb"> <h1>Unable to verify your Kerberos credentials</h1> <p> - Please make sure that you have valid Kerberos tickets (obtainable via <b>kinit</b>), + Please make sure that you have valid Kerberos tickets (obtainable via <strong>kinit</strong>), and that you have configured your browser correctly. </p> - <div id="first-time"> - <b>If this is your first time:</b> - <ul> - <li><a id="import-cert-auth-link" href="/ipa/errors/ca.crt">Click here to - Import the IPA Certificate Authority.</a></li> - <li>Make sure you select <b>all three</b> checkboxes.</li> - <li>Click the <b>OK</b> Button.</li> - </ul> - </div> + <h2> Browser configuration</h2> - <div id="next-link" style="display: none;"> - <p><a href="browserconfig.html">Click here to continue.</a></p> + <div id="first-time"> + <p> + If this is your first time, please <strong>configure your browser</strong>. + Use <a href="browserconfig.html">Firefox configuration page</a> for Firefox + or <a href="ssbrowser.html">manual configuration page</a> for other browsers. + </p> </div> - </div> </div> diff --git a/install/ui/ipa.css b/install/ui/ipa.css index c8a220e78..bc971dce4 100644 --- a/install/ui/ipa.css +++ b/install/ui/ipa.css @@ -4,6 +4,7 @@ * Adam Young <ayoung@redhat.com> * Endi Sukma Dewata <edewata@redhat.com> * Kyle Baker <kybaker@redhat.com> +* Petr Vobornik <pvoborni@redhat.com> * * Copyright (C) 2010 Red Hat */ @@ -846,7 +847,6 @@ ul#viewtype li a { h1 { font-family: "Overpass Bold","Liberation Sans", Arial, sans-serif; font-size: 1.5em; - font-weight: normal; color: #555555; text-transform: uppercase; text-shadow: 1px 1px 0 #FFFFFF; @@ -856,7 +856,6 @@ h1 { h2 { font-family: "Overpass Bold","Liberation Sans", Arial, sans-serif; font-size: 1.5em; - font-weight: normal; color: #333333; text-transform: uppercase; margin-left: 1em; @@ -1351,9 +1350,23 @@ body.info-page { background: url(images/static-background.png) repeat-x scroll left top #EDEDED; } +.info-page p { + margin: 0.5em 0em 1em 0em; +} + +.info-page h1, .info-page h2, .info-page h3 { + font-family: "Overpass", "Liberation Sans", Arial, sans-serif; + margin-left: 0px; + font-weight: normal; + color: #555555; +} + .info-page h1 { - color: #333333; - margin-bottom: 1.5em; + font-size: 2em; +} + +.info-page h2 { + margin-top: 2em; } .info-page .container_1 { @@ -1398,6 +1411,22 @@ body.info-page { margin-right: 0px; } +/* Browser config page */ + + +.info-page .browser-config h1, +.info-page .browser-config h2, +.info-page .browser-config h3, +.info-page .browser-config.textblockkrb { + text-align: center; +} + +.browser-config h2 { + margin-left: 0em; + margin-top: 2em; + +} + /* ---- HBAC Test ---- */ .hbac-test-header { diff --git a/install/ui/ipa.js b/install/ui/ipa.js index bd25aeae2..45195bc49 100644 --- a/install/ui/ipa.js +++ b/install/ui/ipa.js @@ -1670,9 +1670,11 @@ IPA.unauthorized_dialog = function(spec) { that.krb_auth_msg = spec.krb_auth_msg || IPA.get_message('login.krb_auth_msg', " To login with Kerberos, please make sure you" + " have valid tickets (obtainable via kinit) and " + - "<a href='/ipa/config/unauthorized.html'>configured</a>" + + "<a href='http://${host}/ipa/config/unauthorized.html'>configured</a>" + " the browser correctly, then click Login. "); + that.krb_auth_msg = that.krb_auth_msg.replace('${host}', window.location.hostname); + that.form_auth_failed = "<p><strong>Please re-enter your username or password</strong></p>" + "<p>The password or username you entered is incorrect. " + "Please try again (make sure your caps lock is off).</p>" + diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index 0d94d9b02..8a1c9a1b1 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -134,7 +134,7 @@ "login": { "form_auth": "To login with username and password, enter them in the fields below then click Login.", "header": "Logged In As", - "krb_auth_msg": "To login with Kerberos, please make sure you have valid tickets (obtainable via kinit) and <a href='/ipa/config/unauthorized.html'>configured</a> the browser correctly, then click Login.", + "krb_auth_msg": "To login with Kerberos, please make sure you have valid tickets (obtainable via kinit) and <a href='http://${host]/ipa/config/unauthorized.html'>configured</a> the browser correctly, then click Login.", "login": "Login", "logout": "Logout", "logout_error": "Logout error", diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py index 4dc409cd3..1e21e8116 100644 --- a/ipalib/plugins/internal.py +++ b/ipalib/plugins/internal.py @@ -269,7 +269,7 @@ class i18n_messages(Command): "login": { "form_auth": _("To login with username and password, enter them in the fields below then click Login."), "header": _("Logged In As"), - "krb_auth_msg": _("To login with Kerberos, please make sure you have valid tickets (obtainable via kinit) and <a href='/ipa/config/unauthorized.html'>configured</a> the browser correctly, then click Login."), + "krb_auth_msg": _("To login with Kerberos, please make sure you have valid tickets (obtainable via kinit) and <a href='http://${host]/ipa/config/unauthorized.html'>configured</a> the browser correctly, then click Login."), "login": _("Login"), "logout": _("Logout"), "logout_error": _("Logout error"), |