summaryrefslogtreecommitdiffstats
path: root/install/ui
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2013-11-22 10:18:12 +0100
committerPetr Vobornik <pvoborni@redhat.com>2014-04-15 12:41:54 +0200
commit7c068f036f64b3b5156862fc2fc5855db612ef2e (patch)
tree1efbb8fec0c57fe831c5595556984d65de9b232c /install/ui
parentefc9e66f4ddff7c0aaae5d460ab41f6026fbd32d (diff)
downloadfreeipa-7c068f036f64b3b5156862fc2fc5855db612ef2e.tar.gz
freeipa-7c068f036f64b3b5156862fc2fc5855db612ef2e.tar.xz
freeipa-7c068f036f64b3b5156862fc2fc5855db612ef2e.zip
webui: login page
A facet with login sreen widget. https://fedorahosted.org/freeipa/ticket/3903 Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
Diffstat (limited to 'install/ui')
-rw-r--r--install/ui/doc/categories.json3
-rw-r--r--install/ui/jsl.conf1
-rw-r--r--install/ui/src/freeipa/Application_controller.js3
-rw-r--r--install/ui/src/freeipa/app.js1
-rw-r--r--install/ui/src/freeipa/plugins/login.js95
5 files changed, 101 insertions, 2 deletions
diff --git a/install/ui/doc/categories.json b/install/ui/doc/categories.json
index 8d9fe6888..23792d364 100644
--- a/install/ui/doc/categories.json
+++ b/install/ui/doc/categories.json
@@ -239,7 +239,8 @@
"otptoken",
"radiusproxy",
"user",
- "plugins.load"
+ "plugins.load",
+ "plugins.login"
]
}
]
diff --git a/install/ui/jsl.conf b/install/ui/jsl.conf
index 4bc1fdecb..3e3bec05a 100644
--- a/install/ui/jsl.conf
+++ b/install/ui/jsl.conf
@@ -137,6 +137,7 @@
+process src/freeipa/dialogs/*.js
+process src/freeipa/navigation/*.js
+process src/freeipa/facets/*.js
++process src/freeipa/plugins/*.js
+process src/freeipa/widgets/*.js
+process src/*.js
+process ./*.js \ No newline at end of file
diff --git a/install/ui/src/freeipa/Application_controller.js b/install/ui/src/freeipa/Application_controller.js
index f67dccf31..135e9be87 100644
--- a/install/ui/src/freeipa/Application_controller.js
+++ b/install/ui/src/freeipa/Application_controller.js
@@ -331,9 +331,10 @@ define([
this.current_facet = null;
},
+
_find_menu_item: function(facet) {
- var items;
+ var items = [];
// entity facets
if (facet.entity) {
diff --git a/install/ui/src/freeipa/app.js b/install/ui/src/freeipa/app.js
index a28ce8fc0..1915ccbe6 100644
--- a/install/ui/src/freeipa/app.js
+++ b/install/ui/src/freeipa/app.js
@@ -22,6 +22,7 @@ define([
// core
'./app_container',
'./plugins/load_page',
+ './plugins/login',
// entities
'./aci',
'./automember',
diff --git a/install/ui/src/freeipa/plugins/login.js b/install/ui/src/freeipa/plugins/login.js
new file mode 100644
index 000000000..a659faaa9
--- /dev/null
+++ b/install/ui/src/freeipa/plugins/login.js
@@ -0,0 +1,95 @@
+/* Authors:
+ * Petr Vobornik <pvoborni@redhat.com>
+ *
+ * Copyright (C) 2013 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/>.
+*/
+
+define(['dojo/_base/declare',
+ 'dojo/_base/lang',
+ 'dojo/on',
+ '../facets/Facet',
+ '../auth',
+ '../phases',
+ '../reg',
+ '../widget',
+ '../widgets/LoginScreen'
+ ],
+ function(declare, lang, on, Facet, auth, phases, reg, widget, LoginScreen) {
+
+ /**
+ * Login Facet plugin
+ *
+ * Creates and registers a facet with login page.
+ *
+ * @class plugins.login
+ * @singleton
+ */
+ var login = {};
+
+ login.facet_spec = {
+ name: 'login',
+ preferred_container: 'simple',
+ widgets: [
+ {
+ $type: 'activity',
+ name: 'activity',
+ text: 'Authenticating',
+ visible: false
+ },
+ {
+ $type: 'login_screen',
+ name: 'login_screen'
+ }
+ ]
+ };
+
+ login.LoginFacet = declare([Facet], {
+
+ can_leave: function() {
+ return auth.authenticated;
+ },
+
+ init: function() {
+ this.inherited(arguments);
+ var login_screen = this.get_widget('login_screen');
+ var self = this;
+ on(login_screen, 'logged_in', function(args) {
+ self.emit('logged_in', args);
+ });
+
+ on(this, 'show', function(args) {
+ login_screen.refresh();
+ });
+ }
+ });
+
+ phases.on('registration', function() {
+
+ var fa = reg.facet;
+ var w = reg.widget;
+
+ w.register('login_screen', LoginScreen);
+
+ fa.register({
+ type: 'login',
+ factory: login.LoginFacet,
+ spec: login.facet_spec
+ });
+ });
+
+ return login;
+}); \ No newline at end of file