Commit e3867053 authored by bmortier's avatar bmortier

Merge branch '1.0.9.1-fixes'

parents cbb9c769 b011ab62
FusionDirectory changelog
=========================
* FusionDirectory 1.0.9.2
[Fix] Bugs #3880: mailbox deletion through sieve and cyrus does not work
[Fix] Bugs #4067: Argonaut Server documentation should mention «Get packages informations» option
[Fix] Bugs #4109: The fai tab should not contain kernel options
[Fix] Bugs #4111: Clean FAI support daemon method
[Fix] Bugs #4200: I must tick "Search in subtrees" to see the elements in repository management
[Fix] Bugs #4209: we can no longer select a windows workstation in the user samba tab systeme trust
[Fix] Bugs #4216: the setup in the ldap inspection step need a refresh button
[Feature] Bugs #4217: the reset password system should look for supannMailPerso if the supann plugin is installed
[Feature] Bugs #4219: allow FusionDirectory to be integrated into a cas infrastructure
[Fix] Bugs #4220: Add a function to list the tab that are activate on an object in fusiondirectory-shell
[Fix] Bugs #4221: developer doc on documentation.fusiondirectory.org should have an explanation of the is_this_account system
[Feature] Bugs #4225: the reset password system should look for supannMailPerso if the supann plugin is installed
[Fix] Bugs #4227: Change default block size value in 1024
[Fix] Bugs #4231: difference in provided ldap server in debian and Centos
[Feature] Bugs #4238: ReadOnlyLDAPAttribute should be moved to class_attribute.inc
[Fix] Bugs #4239: ReadOnlyLDAPAttribute should be moved to class_attribute.inc
[Fix] Bugs #4241: Problem when I try to save an already existing supann entry - dropdown dependancy not already filled
[Fix] Bugs #4253: PHP error when I go at dashboard
[Fix] Bugs #4254: we can no longer select a windows workstation in the user samba tab systeme trust
[Fix] Bugs #4261: It appears that prehooks not work with password recovery
[Feature] Bugs #4272: the recovery password page should be customizable to tell user where to go / call
[Feature] Bugs #4273: the recovery password page should be customizable
[Fix] Bugs #4281: PHP error about wrong acl when I edit the configuration
[Fix] Bugs #4288: the documentation about automation should be added
[Fix] Bugs #4292: Migrate last FAI classes to simplePlugin
[Fix] Bugs #4298: the usage of the fusiondirectory-shell doesnt explain the various options for connecting
[Fix] Bugs #4334: the url in the webservice-shell should have the jsonrpc.php added automatically
[Fix] Bugs #4344: when saving the configuration with the application plugin installed
[Fix] Bugs #4345: password recovery show an error when activating recovery password
[Fix] Bugs #4346: CSV import is broken
[Fix] Bugs #4347: Remove config search method
[Fix] Bugs #4353: Error when I try to grab centos packages with an argonaut-server on centos
[Fix] Bugs #4364: Clean up the DaemonEvent mess
[Fix] Bugs #4365: We should delete the rsyslog plugin
[Fix] Bugs #4367: We should delete the databaseManagement class
[Fix] Bugs #4378: user deleted when we change its base
[Fix] Bugs #4379: can't change informations in "Network Settings" in a network component object in systems
[Fix] Bugs #4380: when migrating users with fusiondirectory-setup –migrate-users it cannot migrate user with samba attributes
[Fix] Bugs #4382: SSH plugin: error while adding keys with space(s) in comment
[Fix] Bugs #4386: We have an error when we try to start / stop a service from FusionDirectory
[Fix] Bugs #4392: Error when I open a system from the inventory menu
[Fix] Bugs #4393: The diff between 1.0.9.2 and 1.1 should as short as possible
[Fix] Bugs #4394: Remove the mail method Cyrus Sendmail
[Fix] Bugs #4395: PHP errors when I open inventory tab from a system
[Fix] Bugs #4409: the ssh plugin doesnt support ecdsa-sha2-nistp256 ssh public key format
[Fix] Bugs #4419: remove the class_BootKernelAttribute.inc
[Fix] Bugs #4425: remove fix_munged from the samba plugin
[Fix] Wishlist #2166: Semantic of plDescription and plShortname
[Feature] Wishlist #4001: passwordProposalHook
[Fix] Wishlist #4343: Underscores in departement/domain component names not allowed
* FusionDirectory 1.0.9.1
[Feature] Bugs #4136: we should remove the samba.schema from our contrib directory in core source
......
......@@ -7,7 +7,7 @@
# Manipulate and insert the needed schema into the ldap server
#
# This code is part of FusionDirectory (http://www.fusiondirectory.org/)
# Copyright (C) 2011-2015 FusionDirectory
# Copyright (C) 2011-2016 FusionDirectory
#
# 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
......@@ -430,7 +430,7 @@ This code is part of FusionDirectory <http://www.fusiondirectory.org>
=over 1
=item Copyright (C) 2011-2015 FusionDirectory Project
=item Copyright (C) 2011-2016 FusionDirectory Project
=back
......
......@@ -7,7 +7,7 @@
# Manage fusiondirectory installs from the command line
#
# This code is part of FusionDirectory (http://www.fusiondirectory.org/)
# Copyright (C) 2011-2015 FusionDirectory
# Copyright (C) 2011-2016 FusionDirectory
#
# 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
......@@ -688,6 +688,7 @@ sub add_ldap_admin {
attrs => ['objectClass', 'gosaAclEntry']
);
$acls->code && die "\n! failed to search acls in '$base' - ".$acls->error_name.": ".$acls->error_text;
($acls->count == 0) && die "\n! failed to search acls in '$base' - base not found";
my $oclass = ($acls->entries)[0]->get_value("objectClass", asref => 1);
# Add admin acl
my $newacl = ["0:subtree:$role:".encode_base64($dn, '')];
......@@ -1175,7 +1176,8 @@ sub migrate_users {
if (ask_yn_question("Remove the gosaAccount objectClass from these entries?")) {
foreach my $entry (@entries) {
my @replace;
my @replace;
my @delete;
my @classes = $entry->get_value('objectClass');
if (grep {$_ eq 'gosaAccount'} @classes) {
foreach my $class (@classes) {
......@@ -1189,6 +1191,18 @@ sub migrate_users {
) {
push(@replace, "fdPersonalInfo");
}
if (
($entry->exists('sambaLMPassword') || $entry->exists('sambaNTPassword') ||
$entry->exists('sambaPwdLastSet') || $entry->exists('sambaBadPasswordCount') ||
$entry->exists('sambaBadPasswordTime'))
&& !(grep {$_ eq 'sambaSamAccount'} @classes)
) {
@delete = ('sambaLMPassword','sambaNTPassword','sambaPwdLastSet','sambaBadPasswordCount','sambaBadPasswordTime');
}
}
if (scalar(@delete) > 0) {
$mesg = $ldap->modify($entry->dn(), delete => \@delete );
$mesg->code && print $mesg->error;
}
$mesg = $ldap->modify($entry->dn(), replace => { "objectClass" => \@replace });
$mesg->code && print $mesg->error;
......@@ -1753,7 +1767,7 @@ This code is part of FusionDirectory (http://www.fusiondirectory.org/)
=over 2
=item Copyright (C) 2011-2015 FusionDirectory
=item Copyright (C) 2011-2016 FusionDirectory
=back
......
This diff is collapsed.
......@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "FUSIONDIRECTORY-INSERT-SCHEMA 1"
.TH FUSIONDIRECTORY-INSERT-SCHEMA 1 "2015-09-23" "FusionDirectory 1.0.9" "FusionDirectory Documentation"
.TH FUSIONDIRECTORY-INSERT-SCHEMA 1 "2016-01-05" "FusionDirectory 1.0.9.2" "FusionDirectory Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
......@@ -208,8 +208,8 @@ Come Bernigaud
.SH "LICENCE AND COPYRIGHT"
.IX Header "LICENCE AND COPYRIGHT"
This code is part of FusionDirectory <http://www.fusiondirectory.org>
.IP "Copyright (C) 2011\-2015 FusionDirectory Project" 1
.IX Item "Copyright (C) 2011-2015 FusionDirectory Project"
.IP "Copyright (C) 2011\-2016 FusionDirectory Project" 1
.IX Item "Copyright (C) 2011-2016 FusionDirectory Project"
.PP
This program is distributed in the hope that it will be useful,
but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of
......
......@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "FUSIONDIRECTORY-SETUP 1"
.TH FUSIONDIRECTORY-SETUP 1 "2015-09-22" "FusionDirectory 1.0.9" "FusionDirectory Documentation"
.TH FUSIONDIRECTORY-SETUP 1 "2016-01-05" "FusionDirectory 1.0.9.2" "FusionDirectory Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
......@@ -238,8 +238,8 @@ Come Bernigaud
.SH "LICENCE AND COPYRIGHT"
.IX Header "LICENCE AND COPYRIGHT"
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
.IP "Copyright (C) 2011\-2015 FusionDirectory" 2
.IX Item "Copyright (C) 2011-2015 FusionDirectory"
.IP "Copyright (C) 2011\-2016 FusionDirectory" 2
.IX Item "Copyright (C) 2011-2016 FusionDirectory"
.PP
This program is distributed in the hope that it will be useful,
but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of
......
......@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "FUSIONDIRECTORY.CONF 1"
.TH FUSIONDIRECTORY.CONF 1 "2015-06-30" "FusionDirectory 1.0.9" "FusionDirectory Documentation"
.TH FUSIONDIRECTORY.CONF 1 "2016-01-05" "FusionDirectory 1.0.9.2" "FusionDirectory Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
......@@ -272,8 +272,8 @@ This code is part of FusionDirectory <http://www.fusiondirectory.org>
.IP "Copyright (C) 2003\-2010 \s-1GONICUS\s0 GmbH" 2
.IX Item "Copyright (C) 2003-2010 GONICUS GmbH"
.PD 0
.IP "Copyright (C) 2011\-2015 FusionDirectory project" 2
.IX Item "Copyright (C) 2011-2015 FusionDirectory project"
.IP "Copyright (C) 2011\-2016 FusionDirectory project" 2
.IX Item "Copyright (C) 2011-2016 FusionDirectory project"
.PD
.PP
This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE. \s0 See the \s-1GNU\s0 General Public License for more details.
......@@ -157,7 +157,7 @@ This code is part of FusionDirectory <http://www.fusiondirectory.org>
=item Copyright (C) 2003-2010 GONICUS GmbH
=item Copyright (C) 2011-2015 FusionDirectory project
=item Copyright (C) 2011-2016 FusionDirectory project
=back
......
......@@ -429,6 +429,41 @@ attributetype ( 1.3.6.1.4.1.38414.8.20.3 NAME 'fdSslCertPath'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE)
# CAS
attributetype ( 1.3.6.1.4.1.38414.8.21.1 NAME 'fdCasActivated'
DESC 'FusionDirectory - CAS activation'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.38414.8.21.2 NAME 'fdCasServerCaCertPath'
DESC 'FusionDirectory - CAS server CA certificate path'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE)
attributetype ( 1.3.6.1.4.1.38414.8.21.3 NAME 'fdCasHost'
DESC 'FusionDirectory - CAS host'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE)
attributetype ( 1.3.6.1.4.1.38414.8.21.4 NAME 'fdCasPort'
DESC 'FusionDirectory - CAS port'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE)
attributetype ( 1.3.6.1.4.1.38414.8.21.5 NAME 'fdCasContext'
DESC 'FusionDirectory - CAS context'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE)
# merged from dashboard-fd.schema - Needed by Fusion Directory for dashboard options
attributetype ( 1.3.6.1.4.1.38414.27.1.1 NAME 'fdDashboardPrefix'
......@@ -533,7 +568,8 @@ objectclass ( 1.3.6.1.4.1.38414.8.2.1 NAME 'fusionDirectoryConf'
fdAclTabOnObjects $
fdRfc2307bis $ fdCopyPaste $ fdSnapshotURI $
fdSnapshotAdminDn $ fdSnapshotAdminPassword $ fdPersonalTitleInDN $ fdAccountRDN $
fdSslCaCertPath $ fdSslKeyPath $ fdSslCertPath
fdSslCaCertPath $ fdSslKeyPath $ fdSslCertPath $
fdCasActivated $ fdCasServerCaCertPath $ fdCasHost $ fdCasPort $ fdCasContext
) )
objectclass ( 1.3.6.1.4.1.38414.8.2.2 NAME 'fusionDirectoryPluginsConf'
......
......@@ -2,7 +2,7 @@
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
<?php
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
<?php
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
......@@ -2,7 +2,7 @@
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
......@@ -2,7 +2,7 @@
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
......@@ -3,7 +3,7 @@
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......@@ -119,8 +119,8 @@ class passwordRecovery {
if (session::global_is_set('plist')) {
session::global_un_set('plist');
}
load_plist();
$ui = new fake_userinfo();
load_plist();
$ssl = $this->checkForSSL();
......@@ -150,15 +150,11 @@ class passwordRecovery {
/* Got a formular answer, validate and try to log in */
if ($_SERVER["REQUEST_METHOD"] == "POST") {
/* Destroy old sessions, they cause a successfull login to relog again ... */
if (session::global_is_set('_LAST_PAGE_REQUEST')) {
session::global_set('_LAST_PAGE_REQUEST', time());
}
if (isset($_POST['send'])) {
/* should not happen */
$this->step3();
} elseif (isset($_POST['change'])) {
if (isset($_POST['change'])) {
$this->step4();
} elseif (isset($_POST['apply'])) {
$this->step2();
......@@ -419,11 +415,14 @@ class passwordRecovery {
/* Retrieve dn from the ldap */
$ldap = $this->config->get_ldap_link();
$objectClasses = array('gosaMailAccount');
if (class_available('personalInfo') && ($this->config->get_cfg_value('privateEmailPasswordRecovery', 'FALSE') == 'TRUE')) {
$filter = '(&(|(objectClass=gosaMailAccount)(objectClass=fdPersonalInfo))(uid='.$this->uid.'))';
} else {
$filter = '(&(objectClass=gosaMailAccount)(uid='.$this->uid.'))';
$objectClasses[] = 'fdPersonalInfo';
}
if (class_available('supannAccount') && ($this->config->get_cfg_value('supannPasswordRecovery', 'TRUE') == 'TRUE')) {
$objectClasses[] = 'supannPerson';
}
$filter = '(&(|(objectClass='.join(')(objectClass=', $objectClasses).'))(uid='.$this->uid.'))';
$ldap->cd($this->config->current['BASE']);
$ldap->search($filter, array('dn'));
......@@ -458,6 +457,9 @@ class passwordRecovery {
if (class_available('personalInfo') && ($this->config->get_cfg_value('privateEmailPasswordRecovery', 'FALSE') == 'TRUE')) {
$filter = '(|'.$filter.'(&(objectClass=fdPersonalInfo)(fdPrivateMail='.$this->email_address.')))';
}
if (class_available('supannAccount') && ($this->config->get_cfg_value('supannPasswordRecovery', 'TRUE') == 'TRUE')) {
$filter = '(|'.$filter.'(&(objectClass=supannPerson)(supannMailPerso='.$this->email_address.')))';
}
$uids = get_list( $filter, "",
$this->config->current['BASE'], array("uid"),
GL_SUBSEARCH | GL_NO_ACL_CHECK);
......
......@@ -2,7 +2,7 @@
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
<?php
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2013-2015 FusionDirectory
Copyright (C) 2013-2016 FusionDirectory
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
......
This diff is collapsed.
......@@ -3,7 +3,7 @@
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......@@ -58,7 +58,7 @@ if (!session::global_is_set('connected')) {
$ui = session::global_get('ui');
if ($_SERVER['REMOTE_ADDR'] != $ui->ip) {
new log('security', 'login', '', array(), 'main.php called with session which has a changed IP address.');
header ('Location: index.php?message=newip');
header ('Location: index.php?signout=1&message=newip');
exit;
}
$config = session::global_get('config');
......@@ -72,12 +72,9 @@ if (($config->get_cfg_value('forcessl') == 'TRUE') && ($ssl != '')) {
timezone::setDefaultTimezoneFromConfig();
/* Check for invalid sessions */
if (session::global_get('_LAST_PAGE_REQUEST') == "") {
session::global_set('_LAST_PAGE_REQUEST', time());
} else {
if (session::global_get('_LAST_PAGE_REQUEST') != '') {
/* check FusionDirectory.conf for defined session lifetime */
$max_life = $config->get_cfg_value("sessionLifetime", 60 * 60 * 2);
$max_life = $config->get_cfg_value('sessionLifetime', 60 * 60 * 2);
/* get time difference between last page reload */
$request_time = (time() - session::global_get('_LAST_PAGE_REQUEST'));
......@@ -88,11 +85,11 @@ if (session::global_get('_LAST_PAGE_REQUEST') == "") {
if ($request_time > $max_life) {
session::destroy();
new log('security', 'login', '', array(), 'main.php called with expired session - logging out');
header ('Location: index.php?message=expired');
header ('Location: index.php?signout=1&message=expired');
exit;
}
session::global_set('_LAST_PAGE_REQUEST', time());
}
session::global_set('_LAST_PAGE_REQUEST', time());
@DEBUG (DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
......@@ -135,11 +132,11 @@ $plist->gen_menu();
$smarty->assign("hideMenus", FALSE);
if ($config->get_cfg_value("handleExpiredAccounts") == "TRUE") {
$expired = $ui->expired_status();
if ($expired == POSIX_WARN_ABOUT_EXPIRATION && !session::is_set('POSIX_WARN_ABOUT_EXPIRATION__DONE')) {
@DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, "This user account (".$ui->username.") is about to expire");
if (($expired == POSIX_WARN_ABOUT_EXPIRATION) && !session::is_set('POSIX_WARN_ABOUT_EXPIRATION__DONE')) {
@DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, "This user account (".$ui->uid.") is about to expire");
// The users password is about to xpire soon, display a warning message.
new log("security", "fusiondirectory", "", array(), "password for user '".$ui->username."' is about to expire");
new log("security", "fusiondirectory", "", array(), "password for user '".$ui->uid."' is about to expire");
msg_dialog::display(_("Password change"), _("Your password is about to expire, please change your password!"), INFO_DIALOG);
session::set('POSIX_WARN_ABOUT_EXPIRATION__DONE', TRUE);
} elseif ($expired == POSIX_FORCE_PASSWORD_CHANGE) {
......@@ -169,7 +166,7 @@ if (isset($_GET['plug']) && $plist->plugin_access_allowed($_GET['plug'])) {
session::global_set('plugin_dir', $plugin_dir);
if ($plugin_dir == '') {
new log('security', 'fusiondirectory', '', array(), "main.php called with invalid plug parameter \"$plug\"");
header ('Location: index.php?message=invalidparameter&plug='.$plug);
header ('Location: index.php?signout=1&message=invalidparameter&plug='.$plug);
exit;
}
} else {
......@@ -248,9 +245,9 @@ if (isset($plug)) {
}
if ($ui->ignore_acl_for_current_user()) {
$smarty->assign ("username", "<div style='color:#FF0000;'>"._("User ACL checks disabled")."</div>&nbsp;".$ui->username);
$smarty->assign ('username', '<div style="color:#FF0000;">'._('User ACL checks disabled').'</div>&nbsp;'.$ui->uid);
} else {
$smarty->assign ("username", $ui->username);
$smarty->assign ('username', $ui->uid);
}
$smarty->assign ("menu", $plist->menu);
$smarty->assign ("plug", "$plug");
......
......@@ -3,7 +3,7 @@
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
<?php
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
......@@ -2,7 +2,7 @@
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2015 FusionDirectory
Copyright (C) 2011-2016 FusionDirectory
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
......
......@@ -263,11 +263,14 @@ vertical-align:top;
}
table.listing_container > tbody > tr > td.filter {
min-width:250px;
max-width:300px;
vertical-align:top;
}
table.listing_container > tbody > tr > td.filter .contentboxb {
min-width:230px;
}
/* On small screens */
@media (max-width: 640px) {
table.listingTable {
......
......@@ -143,9 +143,11 @@ transition:box-shadow .5s ease, background .5s ease;
}
html.ltr .iconmenu {
float:left;
text-align:left;
}
html.rtl .iconmenu {
float:right;
text-align:right;
}
.iconmenu:hover {
box-shadow:0px 0px 4px black;
......
......@@ -270,7 +270,7 @@ vertical-align:middle;
width:auto;
}
p.contentboxh {
div.contentboxh > p {
margin:2px;
font-family:arial,helvetica,sans-serif;
font-size:16px;
......@@ -293,6 +293,22 @@ div.contentboxb > div {
display:inline-block;
margin:1px;
}
.filter div.contentboxb > div {
width:100%;
background:#EEEEEE;
border-top:1px solid #B0B0B0;
text-align:right;
margin:0;
padding:3px;
box-sizing:border-box;
}
.filter div.contentboxb > label img {
vertical-align:middle;
padding:3px;
}
.filter div.contentboxb > hr {
margin-bottom:3px;
}
div.contentboxb > img, div.contentboxb > input {
display:inline-block;
margin:3px;
......
......@@ -10,7 +10,7 @@
<img src="geticon.php?context=actions&amp;icon=go-home&amp;size=22" alt="Main"/>&nbsp;{t}Main{/t}
</a>
&nbsp;
<a class="maintitlebar logout" href="index.php">
<a class="maintitlebar logout" href="index.php?signout=1">
<img src="geticon.php?context=actions&amp;icon=application-exit&amp;size=22" alt="Sign out"/>&nbsp;{t}Sign out{/t}
</a>
<a class="plugtop">
......@@ -61,7 +61,7 @@
{literal}
function logout()
{
document.location = 'index.php?message=expired';
document.location = 'index.php?signout=1&message=expired';
}
{/literal}
......
......@@ -29,22 +29,7 @@
<!-- Display error message on demand -->
<p class="warning"> {$message} </p>
{if $step==2}
<p class="infotext">
{t}Password recovery for email {$email_address}{/t}
</p>
<p class="infotext">
<ul>
<li>{t}Receive by email a link that allows you to reset your password{/t} :
<input type="submit" name="send" value="{t}Send{/t}"
title="{t}Click here to send a reset link{/t}">
<input type="hidden" id="email_address" maxlength="60" value="{$email_address}">
<input type="hidden" id="uid" maxlength="60" value="{$uid}">
</li>
</ul>
</p>
{elseif $step==3}
{if $step==3}
<p class="infotext">
{t}Informations to reset password for {$uid} have been sent to email address {$email_address}{/t}<br/>
<div style="color:red;">{t}Warning : this email is only valid for {$delay_allowed} minutes.{/t}</div>
......@@ -93,8 +78,6 @@
<div class="change" style="float:right; text-align:right;">
<input type="submit" name="change" value="{t}Change{/t}" title="{t}Click here to change your password{/t}">
<input type="hidden" id="email_address" maxlength="60" value="{$email_address}">
<input type="hidden" id="uniq" maxlength="60" value="{$uniq}">
<input type="hidden" id="formSubmit">
</div>
<div style="clear:both"></div>
......
<div style="padding:5px;">
<div style="font-size:18px;">
<img alt="" src="geticon.php?context=status&amp;icon=dialog-warning&amp;size=32" class="center"/>&nbsp;{t}Warning: you are about to restore the following snapshot{/t}
</div>
<p>
<ul>
{foreach from=$objects item=object}
<li style="list-style-image:url('{$object.icon}');" title="{$object.type}">
{$object.name}&nbsp;(<i>{$object.dn}</i>)
</li>
{/foreach}
</ul>
{t}Any modification made to the object since this snapshot will be lost.{/t}
{t}Please double check if you really want to do this since there is no way for FusionDirectory to get your data back.{/t}
</p>
<p>
{t}So - if you're sure - press 'Continue' to continue or 'Cancel' to abort.{/t}
</p>
<p class="plugbottom">
<input type="submit" name="restore_confirmed" value="{t}Continue{/t}"/>
<input type="submit" name="restore_cancel" value="{msgPool type=cancelButton}"/>
</p>
</div>
<div class="contentboxh">
<p class="contentboxh">
{t}Filter{/t}
</p>
<p>{t}Filter{/t}</p>
</div>
<div class="contentboxb">
......@@ -9,28 +7,13 @@
{${$ofilter.id}}<label for="{$ofilter.id}">&nbsp;{$ofilter.label}</label><br/>
{/foreach}
<div style="display:block;width=100%;border-top:1px solid #AAAAAA;"></div>
<hr/>