allow messages in postModifyActions()
This commit is contained in:
parent
e8baa8d4fd
commit
236e582005
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15"><title>Upgrade notes</title>
|
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15"><title>Upgrade notes</title>
|
||||||
|
|
||||||
|
@ -20,7 +21,10 @@ This is a list of API changes for all LAM releases.
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<h2>3.5.0 -> 3.6</h2>LAM now supports client-side validation (required + numeric fields). See htmlInputField::setValidationRule().<br>
|
<h2>3.6 -> 3.7</h2>The module function <span style="font-weight: bold;">postModifyActions()</span> must return an array containing any messages to display.<br>
|
||||||
|
<br>
|
||||||
|
<h2>3.5.0 -> 3.6</h2>
|
||||||
|
LAM now supports client-side validation (required + numeric fields). See htmlInputField::setValidationRule().<br>
|
||||||
<br>
|
<br>
|
||||||
<h2>3.4.0 -> 3.5.0</h2>
|
<h2>3.4.0 -> 3.5.0</h2>
|
||||||
The old meta HTML code is no longer supported. Please use the new solution based on htmlElement (see lib/html.inc).<br>
|
The old meta HTML code is no longer supported. Please use the new solution based on htmlElement (see lib/html.inc).<br>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2003 - 2011 Roland Gruber
|
Copyright (C) 2003 - 2012 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1051,9 +1051,10 @@ abstract class baseModule {
|
||||||
*
|
*
|
||||||
* @param boolean $newAccount new account
|
* @param boolean $newAccount new account
|
||||||
* @param array $attributes LDAP attributes of this entry
|
* @param array $attributes LDAP attributes of this entry
|
||||||
|
* @return array array which contains status messages. Each entry is an array containing the status message parameters.
|
||||||
*/
|
*/
|
||||||
public function postModifyActions($newAccount, $attributes) {
|
public function postModifyActions($newAccount, $attributes) {
|
||||||
return;
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -820,13 +820,19 @@ class accountContainer {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// save account
|
// save account
|
||||||
$errors = $this->save_account();
|
$saveMessages = $this->save_account();
|
||||||
if (sizeof($errors) > 0) {
|
$saveOk = true;
|
||||||
$result = $errors;
|
for ($i = 0; $i < sizeof($saveMessages); $i++) {
|
||||||
|
if ($saveMessages[$i][0] == 'ERROR') {
|
||||||
|
$saveOk = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$saveOk) {
|
||||||
|
$result = $saveMessages;
|
||||||
$stopProcessing = true;
|
$stopProcessing = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$this->printSuccessPage();
|
$this->printSuccessPage($saveMessages);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1178,8 +1184,9 @@ class accountContainer {
|
||||||
/**
|
/**
|
||||||
* Prints the HTML code to notify the user about the successful saving.
|
* Prints the HTML code to notify the user about the successful saving.
|
||||||
*
|
*
|
||||||
|
* @param array $messages array which contains status messages. Each entry is an array containing the status message parameters.
|
||||||
*/
|
*/
|
||||||
private function printSuccessPage() {
|
private function printSuccessPage($messages) {
|
||||||
$this->printPageHeader();
|
$this->printPageHeader();
|
||||||
// Show success message
|
// Show success message
|
||||||
if ($this->dn_orig == '') {
|
if ($this->dn_orig == '') {
|
||||||
|
@ -1191,6 +1198,19 @@ class accountContainer {
|
||||||
echo "<div class=\"".$this->type."list-bright smallPaddingContent\">";
|
echo "<div class=\"".$this->type."list-bright smallPaddingContent\">";
|
||||||
|
|
||||||
$container = new htmlTable();
|
$container = new htmlTable();
|
||||||
|
// show messages
|
||||||
|
for ($i = 0; $i < sizeof($messages); $i++) {
|
||||||
|
if (sizeof($messages[$i]) == 2) {
|
||||||
|
$message = new htmlStatusMessage($messages[$i][0], $messages[$i][1]);
|
||||||
|
$message->colspan = 10;
|
||||||
|
$container->addElement($message, true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$message = new htmlStatusMessage($messages[$i][0], $messages[$i][1], $messages[$i][2]);
|
||||||
|
$message->colspan = 10;
|
||||||
|
$container->addElement($message, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
$message = new htmlStatusMessage('INFO', _('LDAP operation successful.'), $text);
|
$message = new htmlStatusMessage('INFO', _('LDAP operation successful.'), $text);
|
||||||
$message->colspan = 10;
|
$message->colspan = 10;
|
||||||
$container->addElement($message, true);
|
$container->addElement($message, true);
|
||||||
|
@ -1533,7 +1553,7 @@ class accountContainer {
|
||||||
/**
|
/**
|
||||||
* This function will save an account to the LDAP database.
|
* This function will save an account to the LDAP database.
|
||||||
*
|
*
|
||||||
* @return array list of status messages if any errors occured
|
* @return array list of status messages
|
||||||
*/
|
*/
|
||||||
function save_account() {
|
function save_account() {
|
||||||
if (!checkIfWriteAccessIsAllowed()) {
|
if (!checkIfWriteAccessIsAllowed()) {
|
||||||
|
@ -1712,7 +1732,8 @@ class accountContainer {
|
||||||
if (!$stopprocessing) {
|
if (!$stopprocessing) {
|
||||||
// post modify actions
|
// post modify actions
|
||||||
foreach ($module as $singlemodule) {
|
foreach ($module as $singlemodule) {
|
||||||
$this->module[$singlemodule]->postModifyActions($this->isNewAccount, $prePostModifyAttributes);
|
$postMessages = $this->module[$singlemodule]->postModifyActions($this->isNewAccount, $prePostModifyAttributes);
|
||||||
|
$errors = array_merge($errors, $postMessages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $errors;
|
return $errors;
|
||||||
|
|
|
@ -4,7 +4,7 @@ $Id$
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2008 Thomas Manninger
|
Copyright (C) 2008 Thomas Manninger
|
||||||
2008 - 2011 Roland Gruber
|
2008 - 2012 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -444,6 +444,7 @@ class fixed_ip extends baseModule {
|
||||||
*
|
*
|
||||||
* @param boolean $newAccount
|
* @param boolean $newAccount
|
||||||
* @param array $attributes LDAP attributes of this entry
|
* @param array $attributes LDAP attributes of this entry
|
||||||
|
* @return array array which contains status messages. Each entry is an array containing the status message parameters.
|
||||||
*/
|
*/
|
||||||
public function postModifyActions($newAccount, $attributes) {
|
public function postModifyActions($newAccount, $attributes) {
|
||||||
if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) {
|
if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) {
|
||||||
|
@ -507,6 +508,7 @@ class fixed_ip extends baseModule {
|
||||||
ldap_add($_SESSION['ldap']->server(),'cn='.$add[$id]['cn'].',cn='.$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0].','.$_SESSION['config']->get_suffix('dhcp'),$attr);
|
ldap_add($_SESSION['ldap']->server(),'cn='.$add[$id]['cn'].',cn='.$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0].','.$_SESSION['config']->get_suffix('dhcp'),$attr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2003 - 2006 Tilo Lutz
|
Copyright (C) 2003 - 2006 Tilo Lutz
|
||||||
Copyright (C) 2005 - 2011 Roland Gruber
|
Copyright (C) 2005 - 2012 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -573,8 +573,10 @@ class posixAccount extends baseModule implements passwordService {
|
||||||
*
|
*
|
||||||
* @param boolean $newAccount
|
* @param boolean $newAccount
|
||||||
* @param array $attributes LDAP attributes of this entry
|
* @param array $attributes LDAP attributes of this entry
|
||||||
|
* @return array array which contains status messages. Each entry is an array containing the status message parameters.
|
||||||
*/
|
*/
|
||||||
public function postModifyActions($newAccount, $attributes) {
|
public function postModifyActions($newAccount, $attributes) {
|
||||||
|
$messages = array();
|
||||||
// create home directories if needed
|
// create home directories if needed
|
||||||
if (sizeof($this->lamdaemonServers) > 0) {
|
if (sizeof($this->lamdaemonServers) > 0) {
|
||||||
$server = null;
|
$server = null;
|
||||||
|
@ -607,10 +609,10 @@ class posixAccount extends baseModule implements passwordService {
|
||||||
if (is_array($result)) {
|
if (is_array($result)) {
|
||||||
$singleresult = explode(",", $result[0]);
|
$singleresult = explode(",", $result[0]);
|
||||||
if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'INFO') || ($singleresult[0] == 'WARN')) {
|
if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'INFO') || ($singleresult[0] == 'WARN')) {
|
||||||
call_user_func_array('StatusMessage', $singleresult);
|
$messages[] = $singleresult;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
StatusMessage('ERROR', $result[0]);
|
$messages[] = array('ERROR', $result[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -631,7 +633,7 @@ class posixAccount extends baseModule implements passwordService {
|
||||||
$success = @ldap_mod_add($_SESSION['ldap']->server(), $toAdd[$i], array($attrName => array($this->getAccountContainer()->finalDN)));
|
$success = @ldap_mod_add($_SESSION['ldap']->server(), $toAdd[$i], array($attrName => array($this->getAccountContainer()->finalDN)));
|
||||||
if (!$success) {
|
if (!$success) {
|
||||||
logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to add attributes to DN: ' . $toAdd[$i] . ' (' . ldap_err2str(ldap_errno($_SESSION['ldap']->server())) . ').');
|
logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to add attributes to DN: ' . $toAdd[$i] . ' (' . ldap_err2str(ldap_errno($_SESSION['ldap']->server())) . ').');
|
||||||
StatusMessage('ERROR', sprintf(_('Was unable to add attributes to DN: %s.'), $toAdd[$i]), ldap_error($_SESSION['ldap']->server()));
|
$messages[] = array('ERROR', sprintf(_('Was unable to add attributes to DN: %s.'), $toAdd[$i]), ldap_error($_SESSION['ldap']->server()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -644,11 +646,12 @@ class posixAccount extends baseModule implements passwordService {
|
||||||
$success = @ldap_mod_del($_SESSION['ldap']->server(), $toRem[$i], array($attrName => array($this->getAccountContainer()->dn_orig)));
|
$success = @ldap_mod_del($_SESSION['ldap']->server(), $toRem[$i], array($attrName => array($this->getAccountContainer()->dn_orig)));
|
||||||
if (!$success) {
|
if (!$success) {
|
||||||
logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to delete attributes from DN: ' . $toRem[$i] . ' (' . ldap_err2str(ldap_errno($_SESSION['ldap']->server())) . ').');
|
logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to delete attributes from DN: ' . $toRem[$i] . ' (' . ldap_err2str(ldap_errno($_SESSION['ldap']->server())) . ').');
|
||||||
StatusMessage('ERROR', sprintf(_('Was unable to remove attributes from DN: %s.'), $toRem[$i]), ldap_error($_SESSION['ldap']->server()));
|
$messages[] = array('ERROR', sprintf(_('Was unable to remove attributes from DN: %s.'), $toRem[$i]), ldap_error($_SESSION['ldap']->server()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return $messages;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -4,7 +4,7 @@ $Id$
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2003 - 2006 Tilo Lutz
|
Copyright (C) 2003 - 2006 Tilo Lutz
|
||||||
2007 - 2010 Roland Gruber
|
2007 - 2012 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -236,9 +236,11 @@ class quota extends baseModule {
|
||||||
*
|
*
|
||||||
* @param boolean $newAccount
|
* @param boolean $newAccount
|
||||||
* @param array $attributes LDAP attributes of this entry
|
* @param array $attributes LDAP attributes of this entry
|
||||||
|
* @return array array which contains status messages. Each entry is an array containing the status message parameters.
|
||||||
*/
|
*/
|
||||||
public function postModifyActions($newAccount, $attributes) {
|
public function postModifyActions($newAccount, $attributes) {
|
||||||
if (!isset($this->quota) || !is_array($this->quota)) return;
|
$messages = array();
|
||||||
|
if (!isset($this->quota) || !is_array($this->quota)) return $messages;
|
||||||
// determine if this is a user or group account
|
// determine if this is a user or group account
|
||||||
if ($this->get_scope()=='user') {
|
if ($this->get_scope()=='user') {
|
||||||
$attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes();
|
$attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes();
|
||||||
|
@ -267,6 +269,7 @@ class quota extends baseModule {
|
||||||
}
|
}
|
||||||
lamdaemon(implode(quota::$SPLIT_DELIMITER, array($id, "quota", "set", $this->get_scope(), "$quotastring\n")), $server);
|
lamdaemon(implode(quota::$SPLIT_DELIMITER, array($id, "quota", "set", $this->get_scope(), "$quotastring\n")), $server);
|
||||||
}
|
}
|
||||||
|
return $messages;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue