webui: login page

A facet with login sreen widget.

https://fedorahosted.org/freeipa/ticket/3903

Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
This commit is contained in:
Petr Vobornik 2013-11-22 10:18:12 +01:00
parent efc9e66f4d
commit 7c068f036f
5 changed files with 101 additions and 2 deletions

View File

@ -239,7 +239,8 @@
"otptoken",
"radiusproxy",
"user",
"plugins.load"
"plugins.load",
"plugins.login"
]
}
]

View File

@ -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

View File

@ -331,9 +331,10 @@ define([
this.current_facet = null;
},
_find_menu_item: function(facet) {
var items;
var items = [];
// entity facets
if (facet.entity) {

View File

@ -22,6 +22,7 @@ define([
// core
'./app_container',
'./plugins/load_page',
'./plugins/login',
// entities
'./aci',
'./automember',

View File

@ -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;
});