Commit 400a1c41 authored by bmortier's avatar bmortier

Merge branch '1.0.13-fixes'

parents e4fe9e3c 69f42abb
FusionDirectory changelog
=========================
* FusionDirectory 1.0.14
|Fix] FusionDirectory plugins - Bugs #4142: Local quota
|Fix] FusionDirectory plugins - Bugs #4766: testing the autofs plugin
|Fix] FusionDirectory plugins - Bugs #4772: Autofs - Taille de champ "entrée automount" trop petite
|Fix] Bugs #4831: Allow setting server name for password recovery feature
|Fix] FusionDirectory plugins - Bugs #4874: plugins where there is still some images not in theme
|Fix] Bugs #4875: Hooks can lead to arbitrary code execution
|Fix] FusionDirectory plugins - Bugs #4876: Can't edit system: "Workstation"
|Fix] FusionDirectory plugins - Bugs #4877: Can't edit Dns Zone.
|Fix] FusionDirectory plugins - Bugs #4878: Can't create "Network devices"
|Fix] FusionDirectory plugins - Bugs #4879: Can't add "printer" on Workstation
|Fix] FusionDirectory plugins - Bugs #4880: Remote Desktop stay greyed out.
|Fix] Bugs #4882: Session lifetime...
|Fix] FusionDirectory plugins - Bugs #4883: Impossible to remove a workstation
|Fix] FusionDirectory plugins - Bugs #4884: Case sensitive and DNS
|Fix] FusionDirectory plugins - Bugs #4885: Quota plugin, server are greyed out.
|Fix] FusionDirectory plugins - Bugs #4889: adding a link from printer to suser in the same fashion as user group & roles tab
|Fix] Bugs #4890: Configuration saving is failing in setup
|Fix] Bugs #4891: We would need a hook that works only if the account is created
|Fix] Bugs #4892: Wrong placeholder names for HOOKS
|Fix] FusionDirectory plugins - Bugs #4894: printGeneric code is too old and ugly and 1.1 code should be used instead
|Fix] Bugs #4896: strings in recovery.tpl are not put in .po file
|Feature] Bugs #4897: the breezy theme should be the default one in 1.0.14
|Fix] Bugs #4898: add to documentation of the hooks that they should not contains quote for space in attributes
|Fix] Bugs #4904: changement de mot de passe reste forcé après mise à jour du mot de passe
|Fix] Bugs #4907: dans le template user, il ne mémorise pas la case forcer le changement mdp à la 1ere connexion
|Fix] Bugs #4910: Greyed out icon are the same as normal one with breezy theme
|Fix] Bugs #4912: erreurs php dans /var/log/messages (class_IconTheme.inc)
|Fix] Bugs #4913: adding the eps and png of the FusionDirectory logo to the sources
|Fix] Bugs #4915: refaire la favicon de FusionDirectory
|Fix] Bugs #4916: Les liens sont en bleus à beaucoup d’endroit où cela semble inadapté
|Fix] Bugs #4918: Clean tpl files
|Fix] Bugs #4920: plugins where there is still some images not in theme
|Fix] Bugs #4921: update timeout colors
|Fix] FusionDirectory plugins - Bugs #4922: old option option still present in cyrus mail method
|Fix] Bugs #4923: uid not passed to the mail-method cyrus
|Feature] Bugs #4924: adding the language Finnish (Finland) (fi_FI)
|Fix] Bugs #4925: document the autofs plugin
|Fix] FusionDirectory plugins - Bugs #4927: fdCommunityMembershipType should no be used/displayed in community projects dep.
|Fix] Bugs #4933: the default theme should be renomed legacy or kde3
|Fix] FusionDirectory plugins - Bugs #4934: the default theme should be renomed legacy or kde3
|Feature] FusionDirectory plugins - Bugs #4937: the breezy theme should be the default one in 1.0.14
|Fix] FusionDirectory plugins - Bugs #4943: when clicking on the left menu on the gpg entry FusionDirectory crash
|Fix] FusionDirectory plugins - Bugs #4944: when clicking on the left menu on the opsi import entry FusionDirectory crash
|Fix] FusionDirectory plugins - Bugs #4946: the game plugin should be removed as its not longer usefull
|Fix] FusionDirectory plugins - Bugs #4954: Regression: "Generic IMAP Server" (fdImapServer) was removed
|Fix] FusionDirectory plugins - Bugs #4956: errror when suppressing or adding some service
|Fix] Bugs #4957: when upgrading from 1.0.13 to 1.0.13-fixes going to breezy by default break fusiondirectory
|Feature] Bugs #4970: templates have no acls
|Fix] FusionDirectory plugins - Bugs #4971: Some services icons are missing
|Fix] Bugs #4972: ACL assignment is broken
|Fix] Bugs #4974: LDIF import crash on value 0
|Fix] Bugs #4980: Icon status/dialog-warning missing in size 48 in breezy
|Fix] Bugs #4981: trying to put an ACL assignments on an non existing branch crashes
|Fix] Bugs #4982: CSV import base edition is broken
|Fix] Bugs #4989: Recovery error message
|Fix] FusionDirectory plugins - Bugs #4992: PHP error "deprecated call to old tabclass constructor"
|Fix] FusionDirectory plugins - Bugs #4994: Shell is broken
|Fix] FusionDirectory plugins - Wishlist #4773: Autofs - Vu liste n'affiche pas l'information principale pour les "Répertoires"
|Fix] FusionDirectory plugins - Wishlist #4881: Is possible to modify url link?
|Fix] FusionDirectory plugins - Wishlist #4955: add two boolean attributes to community organization
* FusionDirectory 1.0.13
|Fix] Bugs #4570: error when saving a user with php7
......
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "FUSIONDIRECTORY-INSERT-SCHEMA 1"
.TH FUSIONDIRECTORY-INSERT-SCHEMA 1 "2016-06-02" "FusionDirectory 1.0.13" "FusionDirectory Documentation"
.TH FUSIONDIRECTORY-INSERT-SCHEMA 1 "2016-06-23" "FusionDirectory 1.0.14" "FusionDirectory Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
......
......@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "FUSIONDIRECTORY-SETUP 1"
.TH FUSIONDIRECTORY-SETUP 1 "2016-06-02" "FusionDirectory 1.0.13" "FusionDirectory Documentation"
.TH FUSIONDIRECTORY-SETUP 1 "2016-06-23" "FusionDirectory 1.0.14" "FusionDirectory Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
......
......@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "FUSIONDIRECTORY.CONF 1"
.TH FUSIONDIRECTORY.CONF 1 "2016-06-02" "FusionDirectory 1.0.13" "FusionDirectory Documentation"
.TH FUSIONDIRECTORY.CONF 1 "2016-06-23" "FusionDirectory 1.0.14" "FusionDirectory Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
......
......@@ -20,12 +20,13 @@
function smarty_function_filePath($params, &$smarty)
{
$config = session::global_get('config');
$default_theme = 'breezy';
/* Set theme */
if (isset ($config)) {
$theme = $config->get_cfg_value("theme", "default");
$theme = $config->get_cfg_value('theme', $default_theme);
} else {
$theme = "default";
$theme = $default_theme;
}
$filename = $params['file'];
......@@ -40,6 +41,12 @@ function smarty_function_filePath($params, &$smarty)
if (file_exists("$dir/themes/$theme/$filename")) {
return "$dir/themes/$theme/$filename";
}
if (file_exists("themes/$default_theme/$filename")) {
return "themes/$default_theme/$filename";
}
if (file_exists("$dir/themes/$default_theme/$filename")) {
return "$dir/themes/$default_theme/$filename";
}
if (file_exists("themes/default/$filename")) {
return "themes/default/$filename";
}
......
......@@ -166,10 +166,7 @@ class standAlonePage {
exit;
} elseif ($config->get_cfg_value("warnssl") == 'TRUE') {
/* Display SSL mode warning? */
$smarty->assign("ssl", "<b>"._("Warning").":</b> ".
_("Session will not be encrypted.").
" <a style=\"color:red;\" href=\"".htmlentities($ssl).
"\"><b>"._("Enter SSL session")."</b></a>!");
$smarty->assign ('ssl', sprintf(_('Warning: <a href="%s">Session is not encrypted!</a>'), $ssl));
}
}
......@@ -182,9 +179,14 @@ class standAlonePage {
if (isset($_SERVER['HTTPS']) && ($_SERVER["HTTPS"] == "on")) {
$pageURL .= "s";
}
$pageURL .= "://".$_SERVER["SERVER_NAME"];
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= ":".$_SERVER["SERVER_PORT"];
$pageURL .= '://';
if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$pageURL .= $_SERVER['HTTP_X_FORWARDED_HOST'];
} else {
$pageURL .= $_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT'] != '80') {
$pageURL .= ':'.$_SERVER['SERVER_PORT'];
}
}
$pageURL .= $_SERVER["PHP_SELF"];
......
html/favicon.ico

315 Bytes | W: | H:

html/favicon.ico

4.19 KB | W: | H:

html/favicon.ico
html/favicon.ico
html/favicon.ico
html/favicon.ico
  • 2-up
  • Swipe
  • Onion skin
......@@ -34,17 +34,16 @@ if (session::global_is_set('config')) {
} else {
header("cache-control: no-cache");
}
IconTheme::$extensions = array('png');
IconTheme::$default_theme = 'breezy';
IconTheme::$extensions = array('png');
$src = IconTheme::findThemeIcon($theme, $_GET['context'], $_GET['icon'], $_GET['size']);
header("Content-Type: image/png");
if (isset($_GET['disabled']) && $_GET['disabled']) {
$im = imagecreatefrompng($src);
imageAlphaBlending($im, TRUE);
imageSaveAlpha($im, TRUE);
imagefilter($im, IMG_FILTER_GRAYSCALE);
imagepng($im);
imagedestroy($im);
$im = new Imagick($src);
$im->modulateImage(100, 0, 100);
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);
echo $im;
} else {
readfile($src);
}
......
......@@ -564,20 +564,22 @@ function setProgressPie(context, percent)
{
context.clearRect(0, 0, 22, 22);
var r = "FF";
var g = "FF";
var b = "FF";
var r = "3D";
var g = "AE";
var b = "E9";
// Fade yellow
// Fade orange
if (percent > 50) {
d = 255 - parseInt((percent-50) * 255 / 50)
b = d.toString(16);
r = "F6"
g = "74"
b = "00";
}
// Fade red
if (percent > 75) {
d = 255 - parseInt((percent-75) * 255 / 25)
g = d.toString(16);
r = "ED"
g = "15"
b = "15";
}
context.strokeStyle = "#" + r + g + b
......
......@@ -52,17 +52,16 @@ function displayLogin()
$smarty->assign ("message", $message);
/* Displasy SSL mode warning? */
if (($ssl != "") && ($config->get_cfg_value('warnSSL') == 'TRUE')) {
$smarty->assign ("ssl", _("Warning").": <a style=\"color:red;\" href=\"$ssl\">"._("Session is not encrypted!")."</a>");
if (($ssl != '') && ($config->get_cfg_value('warnSSL') == 'TRUE')) {
$smarty->assign ('ssl', sprintf(_('Warning: <a href="%s">Session is not encrypted!</a>'), $ssl));
} else {
$smarty->assign ("ssl", "");
$smarty->assign ('ssl', '');
}
if (!$config->check_session_lifetime()) {
$smarty->assign ("lifetime", _("Warning").": ".
_("The session lifetime configured in your fusiondirectory.conf will be overridden by php.ini settings."));
$smarty->assign ('lifetime', _('Warning: The session lifetime configured in your fusiondirectory.conf will be overridden by php.ini settings.'));
} else {
$smarty->assign ("lifetime", "");
$smarty->assign ('lifetime', '');
}
/* Generate server list */
......
......@@ -76,17 +76,19 @@ if (session::global_get('_LAST_PAGE_REQUEST') != '') {
/* check FusionDirectory.conf for defined session lifetime */
$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'));
/* If page wasn't reloaded for more than max_life seconds
* kill session
*/
if ($request_time > $max_life) {
session::destroy();
logging::log('security', 'login', '', array(), 'main.php called with expired session - logging out');
header ('Location: index.php?signout=1&message=expired');
exit;
if ($max_life > 0) {
/* get time difference between last page reload */
$request_time = (time() - session::global_get('_LAST_PAGE_REQUEST'));
/* If page wasn't reloaded for more than max_life seconds
* kill session
*/
if ($request_time > $max_life) {
session::destroy();
logging::log('security', 'login', '', array(), 'main.php called with expired session - logging out');
header ('Location: index.php?signout=1&message=expired');
exit;
}
}
}
session::global_set('_LAST_PAGE_REQUEST', time());
......@@ -148,11 +150,12 @@ if ($config->get_cfg_value("handleExpiredAccounts") == "TRUE") {
$smarty->assign("hideMenus", TRUE);
$plug = (isset($_GET['plug'])) ? $_GET['plug'] : NULL;
// Search for the 'password' class and set its id as active plug.
// Search for the 'user' class and set its id as active plug.
foreach ($plist->dirlist as $key => $value) {
if (preg_match("/\bpassword\b/i", $value)) {
if ($plug != $key) {
if ($value == 'user') {
if (!isset($_GET['plug']) || ($_GET['plug'] != $key)) {
$_GET['plug'] = $key;
msg_dialog::display(_('Warning'), _('Your password has expired, please set a new one.'), WARNING_DIALOG);
}
break;
}
......
......@@ -12,7 +12,7 @@ background-color:#DDD;
}
textarea[disabled], select[disabled] {
color:#000;
color:#31363b;
background-color:#DDD;
}
......
......@@ -3,9 +3,9 @@
* L i s t s *
********************************/
table.listingTable {
border-top:1px solid #AAA;
border-bottom:1px solid #AAA;
border-left:1px solid #AAA;
border-top:1px solid #C0C2C3;
border-bottom:1px solid #C0C2C3;
border-left:1px solid #C0C2C3;
border-spacing:0;
}
......@@ -20,13 +20,13 @@ white-space:nowrap;
table.listingTable > thead > tr > th {
background:#F0F0F0;
font-weight:bold;
border-right:1px solid #AAA;
border-bottom:1px solid #AAA;
border-right:1px solid #C0C2C3;
border-bottom:1px solid #C0C2C3;
padding:3px;
height:22px;
}
html.rtl table.listingTable > thead > tr > th {
border-left:1px solid #AAA;
border-left:1px solid #C0C2C3;
border-right:none;
}
......@@ -73,10 +73,10 @@ table.listingTable > tbody > tr.entry-locked:hover {
}
table.listingTable > tbody > tr td {
color:#000;
color:#31363b;
margin:3px;
padding:2px;
border-right:1px solid #AAA;
border-right:1px solid #C0C2C3;
word-wrap:break-word;
white-space:normal;
max-width:500px;
......@@ -84,11 +84,21 @@ background:transparent;
height:22px;
}
html.rtl table.listingTable > tbody > tr td {
border-left:1px solid #AAA;
border-left:1px solid #C0C2C3;
border-right:none;
}
table.listingTable > tbody > tr td > a:link {
text-decoration:none;
color:#2980b9;
}
table.listingTable > tbody > tr td > a:visited {
text-decoration:none;
color:#2980b9;
}
/* List border */
div.nlistFooter {
......@@ -102,7 +112,7 @@ width:auto;
/* Sortable Lists (only used in user main tab) */
div.sortableListContainer {
border:1px solid #AAA;
border:1px solid #C0C2C3;
overflow:auto;
margin-bottom:2px;
}
......@@ -111,29 +121,29 @@ margin-bottom:2px;
background-color:#D8D8D8;
padding:3px;
text-align:left;
border-left:1px solid #AAA;
border-left:1px solid #C0C2C3;
}
html.rtl .sortableListContainer th {
text-align:right;
border-right:1px solid #AAA;
border-right:1px solid #C0C2C3;
border-left:none;
}
.sortableListContainer td {
padding:3px;
text-align:left;
border-left:1px solid #AAA;
border-left:1px solid #C0C2C3;
}
html.rtl .sortableListContainer td {
text-align:right;
border-right:1px solid #AAA;
border-right:1px solid #C0C2C3;
border-left:none;
}
tr.sortableListItem {
background-color:#fcfcfc;
cursor:move;
color:#000;
color:#31363b;
}
tr.sortableListItemFill {
......@@ -144,7 +154,7 @@ cursor:default;
tr.sortableListItemOdd {
background-color:#F5F5F5;
cursor:move;
color:#000;
color:#31363b;
}
tr.sortableListItem:hover,tr.sortableListItemOdd:hover {
......@@ -190,7 +200,7 @@ cursor:pointer;
a.treeListSelected {
font-weight:bold;
color:#1010AF;
color:#2980b9;
background-color:#DDD;
padding:2px;
cursor:pointer;
......@@ -215,7 +225,7 @@ background:url(../../images/lists/node.png) no-repeat;
li.treeListSelected a {
font-weight:bold;
color:#1010AF;
color:#2980b9;
padding:2px;
}
......@@ -229,7 +239,7 @@ background:#fcfcfc url(../../images/lists/lastnode.png) no-repeat;
div.treeList {
background-color:#fcfcfc;
border:1px solid #AAA;
border:1px solid #C0C2C3;
padding:5px;
position:absolute;
z-index:500;
......
......@@ -48,6 +48,16 @@ div#window_content > div {
padding:10px;
}
a:link {
text-decoration:none;
color:#2980b9;
}
a:visited {
text-decoration:none;
color:#2980b9;
}
div#window_footer {
padding:0;
}
......@@ -69,6 +79,10 @@ html.rtl div#window_footer > div:nth-child(1) {
text-align:right;
}
span.warning, p.warning {
color:red;
}
/* On small screens */
@media (max-width: 640px) {
div#window_div {
......
......@@ -83,7 +83,7 @@ text-decoration:none;
/* Main menu */
.iconmenu_section
{
border-top:1px solid #AAAAAA;
border-top:1px solid #C0C2C3;
clear:both;
}
......
body {
margin:0;
background-color:#fcfcfc;
color:#00008F;
font-family:arial,helvetica,sans-serif;
font-size:12px;
}
h1 {
margin:0;
background-color:#507AAA;
border-bottom:1px solid #AAA;
padding-top:.2em;
padding-bottom:.2em;
}
img.center {
text-align:center;
vertical-align:middle;
}
h1.headline {
font-size:2em;
}
div.success {
padding:1em;
}
p.infotext {
padding:.5em;
}
table {
border-spacing:.5em;
}
div.change {
margin-right:.5em;
text-align:right;
}
html.rtl div.change {
text-align:left;
}
div.ruler {
border-top:1px solid #AAA;
width:100%;
height:1px;
margin-top:.5em;
margin-bottom:.5em;
}
table.iesucks {
width:60%;
}
......@@ -18,7 +18,3 @@ width:100%;
div.setup_header {
display:none;
}
div.setup_menu {
display:none;
}
......@@ -11,12 +11,6 @@ body.setup .plugin_window {
border-radius:5px;
}
div.setup_menu {
background-color:#F8F8F8;
padding:4px 5px;
border-bottom:1px solid #B0B0B0;
}
/* default.*/
div.default {
padding:2px 10px;
......@@ -47,7 +41,7 @@ cursor:default;
/* Disabled setup steps */
#menucell.setup_navigation li.menuitem.disabled a.navigation_title {
cursor:default;
color:#AAA;
color:#C0C2C3;
}
/* Disabled setup steps */
......@@ -63,7 +57,7 @@ padding-bottom:3px;
/* The style for the info of an active setup */
#menucell.setup_navigation li.menuitem a.navigation_info {
font-size:1em;
color:#000;
color:#31363b;
margin:0;
cursor:default;
}
......@@ -101,7 +95,7 @@ cursor:default;
/* Container for name and status, when status is failed */
div.step2_entry_container_info {
padding:3px;
border:1px solid #AAA;
border:1px solid #C0C2C3;
width:99%;
cursor:default;
}
......
......@@ -37,7 +37,7 @@ padding:0;
/* Error message will be displayed as follows */
div.sieve_error_msgs {
background-color:#ff8d00;
color:#000;
color:#31363b;
padding:5px;
background-image:url(../../geticon.php?context=status&icon=dialog-warning&size=16);
background-repeat:no-repeat;
......@@ -58,7 +58,7 @@ table.object_container_container {
width:100%;
border-spacing:0;
background-color:#F8F8F8;
border:solid 1px #AAA;
border:solid 1px #C0C2C3;
}
/* Container cell top left */
......@@ -72,7 +72,7 @@ td.object_container_cell_top_right {
background-color:#EEE;
text-align:left;
padding:2px;
border-bottom:solid 1px #AAA;
border-bottom:solid 1px #C0C2C3;
}
html.rtl td.object_container_cell_top_right {
text-align:right;
......@@ -85,10 +85,10 @@ background-color:#EEE;