added getAccountContainer()
This commit is contained in:
parent
b336f2f7b3
commit
79307debea
|
@ -9,6 +9,10 @@ Style changes:
|
|||
- "fieldset.<type>edit fieldset" and "fieldset.<type>edit fieldset fieldset" were removed.
|
||||
- "table.<type>list input" changed to "table.<type>list input,select"
|
||||
|
||||
baseModule:
|
||||
- The class variable $base is no longer visible in child classes. Please use
|
||||
$this->getAccountContainer() to access the accountContainer object.
|
||||
|
||||
|
||||
|
||||
1.3.0 -> 2.0.0
|
||||
|
|
|
@ -52,7 +52,7 @@ abstract class baseModule {
|
|||
protected $selfServiceSettings;
|
||||
|
||||
/** name of parent accountContainer ($_SESSION[$base]) */
|
||||
protected $base;
|
||||
private $base;
|
||||
|
||||
/** contains all ldap attributes which should be written */
|
||||
protected $attributes;
|
||||
|
@ -748,6 +748,21 @@ abstract class baseModule {
|
|||
// needs to be implemented by the subclasses, if needed
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the accountContainer object.
|
||||
*
|
||||
* @return accountContainer accountContainer object
|
||||
*
|
||||
*/
|
||||
protected function getAccountContainer() {
|
||||
if (isset($this->base) && isset($_SESSION[$this->base])) {
|
||||
return $_SESSION[$this->base];
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -151,9 +151,9 @@ class account extends baseModule {
|
|||
* @return string status ("enabled", "disabled", "hidden")
|
||||
*/
|
||||
function getButtonStatus() {
|
||||
if (!$_SESSION[$this->base]->isNewAccount) {
|
||||
if (!$this->getAccountContainer()->isNewAccount) {
|
||||
// check if account is based on our object class
|
||||
$objectClasses = $_SESSION[$this->base]->attributes_orig['objectClass'];
|
||||
$objectClasses = $this->getAccountContainer()->attributes_orig['objectClass'];
|
||||
if (is_array($objectClasses) && !in_array('account', $objectClasses)) {
|
||||
return "disabled";
|
||||
}
|
||||
|
@ -171,11 +171,11 @@ class account extends baseModule {
|
|||
*/
|
||||
function save_attributes() {
|
||||
// skip saving if account is based on another structural object class
|
||||
if (!$_SESSION[$this->base]->isNewAccount && !in_array('account', $_SESSION[$this->base]->attributes_orig['objectClass'])) {
|
||||
if (!$this->getAccountContainer()->isNewAccount && !in_array('account', $this->getAccountContainer()->attributes_orig['objectClass'])) {
|
||||
return array();
|
||||
}
|
||||
// Get easy attributes
|
||||
$return = $_SESSION[$this->base]->save_module_attributes($this->attributes, $this->orig);
|
||||
$return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||
// Return attributes
|
||||
return $return;
|
||||
}
|
||||
|
|
|
@ -410,9 +410,9 @@ class inetOrgPerson extends baseModule {
|
|||
* @return boolean true, if all is ok
|
||||
*/
|
||||
function module_complete() {
|
||||
if (!$_SESSION[$this->base]->isNewAccount) {
|
||||
if (!$this->getAccountContainer()->isNewAccount) {
|
||||
// check if account is based on our object class
|
||||
$objectClasses = $_SESSION[$this->base]->attributes_orig['objectClass'];
|
||||
$objectClasses = $this->getAccountContainer()->attributes_orig['objectClass'];
|
||||
if (is_array($objectClasses) && !in_array('inetOrgPerson', $objectClasses)) {
|
||||
return true;
|
||||
}
|
||||
|
@ -427,9 +427,9 @@ class inetOrgPerson extends baseModule {
|
|||
* @return string status ("enabled", "disabled", "hidden")
|
||||
*/
|
||||
function getButtonStatus() {
|
||||
if (!$_SESSION[$this->base]->isNewAccount) {
|
||||
if (!$this->getAccountContainer()->isNewAccount) {
|
||||
// check if account is based on our object class
|
||||
$objectClasses = $_SESSION[$this->base]->attributes_orig['objectClass'];
|
||||
$objectClasses = $this->getAccountContainer()->attributes_orig['objectClass'];
|
||||
if (is_array($objectClasses) && !in_array('inetOrgPerson', $objectClasses)) {
|
||||
return "disabled";
|
||||
}
|
||||
|
@ -447,32 +447,32 @@ class inetOrgPerson extends baseModule {
|
|||
*/
|
||||
function save_attributes() {
|
||||
// skip saving if account is based on another structural object class
|
||||
if (!$_SESSION[$this->base]->isNewAccount && !in_array('inetOrgPerson', $_SESSION[$this->base]->attributes_orig['objectClass'])) {
|
||||
if (!$this->getAccountContainer()->isNewAccount && !in_array('inetOrgPerson', $this->getAccountContainer()->attributes_orig['objectClass'])) {
|
||||
return array();
|
||||
}
|
||||
$return = $_SESSION[$this->base]->save_module_attributes($this->attributes, $this->orig);
|
||||
$return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||
// do not set password if posixAccount is active
|
||||
$modules = $_SESSION['config']->get_AccountModules($this->get_scope());
|
||||
if (in_array('posixAccount', $modules)) {
|
||||
if (isset($return[$_SESSION[$this->base]->dn]['modify']['userPassword'])) {
|
||||
unset($return[$_SESSION[$this->base]->dn]['modify']['userPassword']);
|
||||
if (isset($return[$this->getAccountContainer()->dn]['modify']['userPassword'])) {
|
||||
unset($return[$this->getAccountContainer()->dn]['modify']['userPassword']);
|
||||
}
|
||||
if (isset($return[$_SESSION[$this->base]->dn]['add']['userPassword'])) {
|
||||
unset($return[$_SESSION[$this->base]->dn]['add']['userPassword']);
|
||||
if (isset($return[$this->getAccountContainer()->dn]['add']['userPassword'])) {
|
||||
unset($return[$this->getAccountContainer()->dn]['add']['userPassword']);
|
||||
}
|
||||
}
|
||||
// postalAddress, facsimileTelephoneNumber and jpegPhoto need special removing
|
||||
if (isset($return[$_SESSION[$this->base]->dn]['remove']['postalAddress'])) {
|
||||
$return[$_SESSION[$this->base]->dn]['modify']['postalAddress'] = array();
|
||||
unset($return[$_SESSION[$this->base]->dn]['remove']['postalAddress']);
|
||||
if (isset($return[$this->getAccountContainer()->dn]['remove']['postalAddress'])) {
|
||||
$return[$this->getAccountContainer()->dn]['modify']['postalAddress'] = array();
|
||||
unset($return[$this->getAccountContainer()->dn]['remove']['postalAddress']);
|
||||
}
|
||||
if (isset($return[$_SESSION[$this->base]->dn]['remove']['facsimileTelephoneNumber'])) {
|
||||
$return[$_SESSION[$this->base]->dn]['modify']['facsimileTelephoneNumber'] = array();
|
||||
unset($return[$_SESSION[$this->base]->dn]['remove']['facsimileTelephoneNumber']);
|
||||
if (isset($return[$this->getAccountContainer()->dn]['remove']['facsimileTelephoneNumber'])) {
|
||||
$return[$this->getAccountContainer()->dn]['modify']['facsimileTelephoneNumber'] = array();
|
||||
unset($return[$this->getAccountContainer()->dn]['remove']['facsimileTelephoneNumber']);
|
||||
}
|
||||
if (isset($return[$_SESSION[$this->base]->dn]['remove']['jpegPhoto'])) {
|
||||
$return[$_SESSION[$this->base]->dn]['modify']['jpegPhoto'] = array();
|
||||
unset($return[$_SESSION[$this->base]->dn]['remove']['jpegPhoto']);
|
||||
if (isset($return[$this->getAccountContainer()->dn]['remove']['jpegPhoto'])) {
|
||||
$return[$this->getAccountContainer()->dn]['modify']['jpegPhoto'] = array();
|
||||
unset($return[$this->getAccountContainer()->dn]['remove']['jpegPhoto']);
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
@ -634,7 +634,7 @@ class inetOrgPerson extends baseModule {
|
|||
// password
|
||||
if (!in_array('posixAccount', $modules)) {
|
||||
// new account, show input fields
|
||||
if ($_SESSION[$this->base]->isNewAccount) {
|
||||
if ($this->getAccountContainer()->isNewAccount) {
|
||||
$return[] = array(
|
||||
array('kind' => 'text', 'text' => _('Password') ),
|
||||
array('kind' => 'input', 'name' => 'userPassword', 'type' => 'password', 'size' => '30', 'maxlength' => '255', 'value' => $this->attributes['userPassword'][0]),
|
||||
|
|
|
@ -260,20 +260,20 @@ class kolabUser extends baseModule {
|
|||
* This function will create the meta HTML code to show a page with all attributes.
|
||||
*/
|
||||
function display_html_attributes() {
|
||||
if ($_SESSION[$this->base]->isNewAccount) {
|
||||
if (isset($_SESSION[$this->base]->module['posixAccount'])) {
|
||||
if (!$_SESSION[$this->base]->module['posixAccount']->attributes['userPassword'][0]) {
|
||||
StatusMessage('ERROR', _("Please enter a user password on this page: %s"), '', array($_SESSION[$this->base]->module['posixAccount']->get_alias()));
|
||||
if ($this->getAccountContainer()->isNewAccount) {
|
||||
if (isset($this->getAccountContainer()->module['posixAccount'])) {
|
||||
if (!$this->getAccountContainer()->module['posixAccount']->attributes['userPassword'][0]) {
|
||||
StatusMessage('ERROR', _("Please enter a user password on this page: %s"), '', array($this->getAccountContainer()->module['posixAccount']->get_alias()));
|
||||
}
|
||||
}
|
||||
elseif (isset($_SESSION[$this->base]->module['inetOrgPerson'])) {
|
||||
if (!$_SESSION[$this->base]->module['inetOrgPerson']->attributes['userPassword'][0]) {
|
||||
StatusMessage('ERROR', _("Please enter a user password on this page: %s"), '', array($_SESSION[$this->base]->module['inetOrgPerson']->get_alias()));
|
||||
elseif (isset($this->getAccountContainer()->module['inetOrgPerson'])) {
|
||||
if (!$this->getAccountContainer()->module['inetOrgPerson']->attributes['userPassword'][0]) {
|
||||
StatusMessage('ERROR', _("Please enter a user password on this page: %s"), '', array($this->getAccountContainer()->module['inetOrgPerson']->get_alias()));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$_SESSION[$this->base]->module['inetOrgPerson']->attributes['mail'][0]) {
|
||||
StatusMessage('ERROR', _("Please enter an email address on this page: %s"), '', array($_SESSION[$this->base]->module['inetOrgPerson']->get_alias()));
|
||||
if (!$this->getAccountContainer()->module['inetOrgPerson']->attributes['mail'][0]) {
|
||||
StatusMessage('ERROR', _("Please enter an email address on this page: %s"), '', array($this->getAccountContainer()->module['inetOrgPerson']->get_alias()));
|
||||
}
|
||||
$return = array();
|
||||
// check if account is marked for deletion
|
||||
|
@ -392,7 +392,7 @@ class kolabUser extends baseModule {
|
|||
);
|
||||
$return[] = $returnDelegates;
|
||||
// delete flag
|
||||
if (!$_SESSION[$this->base]->isNewAccount) {
|
||||
if (!$this->getAccountContainer()->isNewAccount) {
|
||||
$returnDelete = array(
|
||||
0 => array('kind' => 'input', 'type' => 'submit', 'value' => _('Mark account for deletion'), 'name' => 'form_subpage_kolabUser_deleteUser_open'),
|
||||
1 => array('kind' => 'help', 'value' => 'deleteFlag'));
|
||||
|
@ -581,13 +581,13 @@ class kolabUser extends baseModule {
|
|||
* @return true, if account can be saved
|
||||
*/
|
||||
function module_complete() {
|
||||
if (!$_SESSION[$this->base]->module['inetOrgPerson']->attributes['mail'][0]) return false;
|
||||
if ($_SESSION[$this->base]->isNewAccount) {
|
||||
if (isset($_SESSION[$this->base]->module['posixAccount'])) {
|
||||
if (!$_SESSION[$this->base]->module['posixAccount']->attributes['userPassword'][0]) return false;
|
||||
if (!$this->getAccountContainer()->module['inetOrgPerson']->attributes['mail'][0]) return false;
|
||||
if ($this->getAccountContainer()->isNewAccount) {
|
||||
if (isset($this->getAccountContainer()->module['posixAccount'])) {
|
||||
if (!$this->getAccountContainer()->module['posixAccount']->attributes['userPassword'][0]) return false;
|
||||
}
|
||||
elseif (isset($_SESSION[$this->base]->module['inetOrgPerson'])) {
|
||||
if (!$_SESSION[$this->base]->module['inetOrgPerson']->attributes['userPassword'][0]) return false;
|
||||
elseif (isset($this->getAccountContainer()->module['inetOrgPerson'])) {
|
||||
if (!$this->getAccountContainer()->module['inetOrgPerson']->attributes['userPassword'][0]) return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -117,7 +117,7 @@ class nisMailAlias extends baseModule {
|
|||
*/
|
||||
function save_attributes() {
|
||||
// skip saving if account is based on another structural object class
|
||||
if (!$_SESSION[$this->base]->isNewAccount && !in_array('nisMailAlias', $_SESSION[$this->base]->attributes_orig['objectClass'])) {
|
||||
if (!$this->getAccountContainer()->isNewAccount && !in_array('nisMailAlias', $this->getAccountContainer()->attributes_orig['objectClass'])) {
|
||||
return array();
|
||||
}
|
||||
return parent::save_attributes();
|
||||
|
@ -207,9 +207,9 @@ class nisMailAlias extends baseModule {
|
|||
* @return string status ("enabled", "disabled", "hidden")
|
||||
*/
|
||||
function getButtonStatus() {
|
||||
if (!$_SESSION[$this->base]->isNewAccount) {
|
||||
if (!$this->getAccountContainer()->isNewAccount) {
|
||||
// check if account is based on our object class
|
||||
$objectClasses = $_SESSION[$this->base]->attributes_orig['objectClass'];
|
||||
$objectClasses = $this->getAccountContainer()->attributes_orig['objectClass'];
|
||||
if (is_array($objectClasses) && !in_array('nisMailAlias', $objectClasses)) {
|
||||
return "disabled";
|
||||
}
|
||||
|
|
|
@ -480,7 +480,7 @@ class posixAccount extends baseModule {
|
|||
* <br>"modify" are attributes which have to been modified in LDAP entry
|
||||
*/
|
||||
function save_attributes() {
|
||||
$return = $_SESSION[$this->base]->save_module_attributes($this->attributes, $this->orig);
|
||||
$return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||
// Remove primary group from additional groups
|
||||
for ($i=0; $i<count($this->groups); $i++) {
|
||||
if ($this->groups[$i]==$_SESSION['cache']->getgrnam($this->attributes['gidNumber'][0])) unset($this->groups[$i]);
|
||||
|
@ -676,12 +676,12 @@ class posixAccount extends baseModule {
|
|||
if (($this->scope == 'host') && (substr($_POST['uid'], -1, 1) == '$')) {
|
||||
$this->attributes['cn'][0] = substr($_POST['uid'], 0, strlen($_POST['uid']) - 1);
|
||||
}
|
||||
elseif (isset($_SESSION[$this->base]->module['inetOrgPerson'])) {
|
||||
if ($_SESSION[$this->base]->module['inetOrgPerson']->attributes['givenName'][0]) {
|
||||
$this->attributes['cn'][0] = $_SESSION[$this->base]->module['inetOrgPerson']->attributes['givenName'][0] . " " . $_SESSION[$this->base]->module['inetOrgPerson']->attributes['sn'][0];
|
||||
elseif (isset($this->getAccountContainer()->module['inetOrgPerson'])) {
|
||||
if ($this->getAccountContainer()->module['inetOrgPerson']->attributes['givenName'][0]) {
|
||||
$this->attributes['cn'][0] = $this->getAccountContainer()->module['inetOrgPerson']->attributes['givenName'][0] . " " . $this->getAccountContainer()->module['inetOrgPerson']->attributes['sn'][0];
|
||||
}
|
||||
elseif ($_SESSION[$this->base]->module['inetOrgPerson']->attributes['sn'][0]) {
|
||||
$this->attributes['cn'][0] = $_SESSION[$this->base]->module['inetOrgPerson']->attributes['sn'][0];
|
||||
elseif ($this->getAccountContainer()->module['inetOrgPerson']->attributes['sn'][0]) {
|
||||
$this->attributes['cn'][0] = $this->getAccountContainer()->module['inetOrgPerson']->attributes['sn'][0];
|
||||
}
|
||||
else {
|
||||
$this->attributes['cn'][0] = $_POST['uid'];
|
||||
|
@ -698,11 +698,11 @@ class posixAccount extends baseModule {
|
|||
$this->attributes['gidNumber'][0] = $_SESSION['cache']->getgid($_POST['gidNumber']);
|
||||
// Check if UID is valid. If none value was entered, the next useable value will be inserted
|
||||
// load min and may uidNumber
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
$minID = intval($this->moduleSettings['posixAccount_minUID'][0]);
|
||||
$maxID = intval($this->moduleSettings['posixAccount_maxUID'][0]);
|
||||
}
|
||||
if ($_SESSION[$this->base]->type=='host') {
|
||||
if ($this->getAccountContainer()->type=='host') {
|
||||
$minID = intval($this->moduleSettings['posixAccount_minMachine'][0]);
|
||||
$maxID = intval($this->moduleSettings['posixAccount_maxMachine'][0]);
|
||||
}
|
||||
|
@ -742,13 +742,13 @@ class posixAccount extends baseModule {
|
|||
}
|
||||
}
|
||||
}
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
if (($this->attributes['uid'][0] != $_POST['uid']) && !get_preg($_POST['uid'], '!upper'))
|
||||
$errors[] = $this->messages['uid'][1];
|
||||
if ( !get_preg($this->attributes['homeDirectory'][0], 'homeDirectory' ))
|
||||
$errors[] = $this->messages['homeDirectory'][0];
|
||||
}
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
$this->attributes['homeDirectory'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($this->attributes['gidNumber'][0]), $this->attributes['homeDirectory'][0]);
|
||||
if ($this->attributes['uid'][0] != '')
|
||||
$this->attributes['homeDirectory'][0] = str_replace('$user', $this->attributes['uid'][0], $this->attributes['homeDirectory'][0]);
|
||||
|
@ -757,7 +757,7 @@ class posixAccount extends baseModule {
|
|||
if ( !get_preg($this->attributes['uid'][0], 'username'))
|
||||
$errors[] = $this->messages['uid'][2];
|
||||
}
|
||||
if ($_SESSION[$this->base]->type=='host') {
|
||||
if ($this->getAccountContainer()->type=='host') {
|
||||
// add "$" to uid if needed
|
||||
if (substr($this->attributes['uid'][0], -1, 1) != '$') {
|
||||
$this->attributes['uid'][0] .= '$';
|
||||
|
@ -781,13 +781,13 @@ class posixAccount extends baseModule {
|
|||
// Change uid to a new uid until a free uid is found
|
||||
else
|
||||
while ($_SESSION['cache']->in_cache($this->attributes['uid'][0], 'uid', array('user', 'host'))) {
|
||||
if ($_SESSION[$this->base]->type=='host') $this->attributes['uid'][0] = substr($this->attributes['uid'][0], 0, -1);
|
||||
if ($this->getAccountContainer()->type=='host') $this->attributes['uid'][0] = substr($this->attributes['uid'][0], 0, -1);
|
||||
// get last character of username
|
||||
$lastchar = substr($this->attributes['uid'][0], strlen($this->attributes['uid'][0])-1, 1);
|
||||
// Last character is no number
|
||||
if ( !ereg('^([0-9])+$', $lastchar)) {
|
||||
// Last character is no number. Therefore we only have to add "2" to it.
|
||||
if ($_SESSION[$this->base]->type=='host') {
|
||||
if ($this->getAccountContainer()->type=='host') {
|
||||
$this->attributes['uid'][0] = $this->attributes['uid'][0] . '2$';
|
||||
}
|
||||
else {
|
||||
|
@ -811,14 +811,14 @@ class posixAccount extends baseModule {
|
|||
$firstchars = substr($this->attributes['uid'][0], 0, $i+1);
|
||||
$lastchars = substr($this->attributes['uid'][0], $i+1, strlen($this->attributes['uid'][0])-$i);
|
||||
// Put username together
|
||||
if ($_SESSION[$this->base]->type=='host') $this->attributes['uid'][0] = $firstchars . (intval($lastchars)+1)."$";
|
||||
if ($this->getAccountContainer()->type=='host') $this->attributes['uid'][0] = $firstchars . (intval($lastchars)+1)."$";
|
||||
else $this->attributes['uid'][0] = $firstchars . (intval($lastchars)+1);
|
||||
}
|
||||
}
|
||||
// Show warning if lam has changed username
|
||||
if ($this->attributes['uid'][0] != $_POST['uid']) {
|
||||
if ($_SESSION[$this->base]->type=='user') $errors[] = $this->messages['uid'][5];
|
||||
if ($_SESSION[$this->base]->type=='host') $errors[] = $this->messages['uid'][6];
|
||||
if ($this->getAccountContainer()->type=='user') $errors[] = $this->messages['uid'][5];
|
||||
if ($this->getAccountContainer()->type=='host') $errors[] = $this->messages['uid'][6];
|
||||
}
|
||||
$attributeList = array('gecos', 'homeDirectory');
|
||||
for ($i = 0; $i < sizeof($attributeList); $i++) {
|
||||
|
@ -934,7 +934,7 @@ class posixAccount extends baseModule {
|
|||
1 => array('kind' => 'select', 'name' => 'gidNumber', 'options' => $groups, 'options_selected' => array($_SESSION['cache']->getgrnam($this->attributes['gidNumber'][0]))),
|
||||
2 => array('kind' => 'help', 'value' => 'gidNumber'));
|
||||
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
$return[] = array(
|
||||
0 => array('kind' => 'text', 'text' => _('Additional groups')),
|
||||
1 => array('kind' => 'input', 'name' => 'form_subpage_posixAccount_group_open', 'type' => 'submit', 'value' => _('Edit groups')),
|
||||
|
@ -943,7 +943,7 @@ class posixAccount extends baseModule {
|
|||
0 => array('kind' => 'text', 'text' => _('Home directory').'*'),
|
||||
1 => array('kind' => 'input', 'name' => 'homeDirectory', 'type' => 'text', 'size' => '30', 'maxlength' => '255', 'value' => $this->attributes['homeDirectory'][0]),
|
||||
2 => array('kind' => 'help', 'value' => 'homeDirectory'));
|
||||
if ($_SESSION[$this->base]->isNewAccount && isset($_SESSION['config']->scriptPath) && ($_SESSION['config']->scriptPath != '')) {
|
||||
if ($this->getAccountContainer()->isNewAccount && isset($_SESSION['config']->scriptPath) && ($_SESSION['config']->scriptPath != '')) {
|
||||
// get list of lamdaemon servers
|
||||
$lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers());
|
||||
for ($i = 0; $i < sizeof($lamdaemonServers); $i++) {
|
||||
|
|
|
@ -133,7 +133,7 @@ class posixGroup extends baseModule {
|
|||
}
|
||||
}
|
||||
if ($found) {
|
||||
$return[$_SESSION[$this->base]->dn]['errors'][] = $this->messages['primaryGroup'][0];
|
||||
$return[$this->getAccountContainer()->dn]['errors'][] = $this->messages['primaryGroup'][0];
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
@ -474,9 +474,9 @@ class posixGroup extends baseModule {
|
|||
* @return boolean true, if settings are complete
|
||||
*/
|
||||
function module_complete() {
|
||||
if (!$_SESSION[$this->base]->isNewAccount) {
|
||||
if (!$this->getAccountContainer()->isNewAccount) {
|
||||
// check if account is based on our object class
|
||||
$objectClasses = $_SESSION[$this->base]->attributes_orig['objectClass'];
|
||||
$objectClasses = $this->getAccountContainer()->attributes_orig['objectClass'];
|
||||
if (is_array($objectClasses) && !in_array('posixGroup', $objectClasses)) {
|
||||
return true;
|
||||
}
|
||||
|
@ -493,9 +493,9 @@ class posixGroup extends baseModule {
|
|||
* @return string status ("enabled", "disabled", "hidden")
|
||||
*/
|
||||
function getButtonStatus() {
|
||||
if (!$_SESSION[$this->base]->isNewAccount) {
|
||||
if (!$this->getAccountContainer()->isNewAccount) {
|
||||
// check if account is based on our object class
|
||||
$objectClasses = $_SESSION[$this->base]->attributes_orig['objectClass'];
|
||||
$objectClasses = $this->getAccountContainer()->attributes_orig['objectClass'];
|
||||
if (is_array($objectClasses) && !in_array('posixGroup', $objectClasses)) {
|
||||
return "disabled";
|
||||
}
|
||||
|
@ -680,10 +680,10 @@ class posixGroup extends baseModule {
|
|||
*/
|
||||
function save_attributes() {
|
||||
// skip saving if account is based on another structural object class
|
||||
if (!$_SESSION[$this->base]->isNewAccount && !in_array('posixGroup', $_SESSION[$this->base]->attributes_orig['objectClass'])) {
|
||||
if (!$this->getAccountContainer()->isNewAccount && !in_array('posixGroup', $this->getAccountContainer()->attributes_orig['objectClass'])) {
|
||||
return array();
|
||||
}
|
||||
$return = $_SESSION[$this->base]->save_module_attributes($this->attributes, $this->orig);
|
||||
$return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||
// Change gids of users and hosts?
|
||||
if ($this->changegids) {
|
||||
// get gidNumber
|
||||
|
|
|
@ -138,7 +138,7 @@ class quota extends baseModule {
|
|||
function initQuotas() {
|
||||
if (isset($this->quota)) return;
|
||||
$userName = '+';
|
||||
if (isset($_SESSION[$this->base]) && !$_SESSION[$this->base]->isNewAccount) {
|
||||
if (($this->getAccountContainer() != null) && !$this->getAccountContainer()->isNewAccount) {
|
||||
if (!isset($this->attributes['uid'][0])) return;
|
||||
$userName = $this->attributes['uid'][0];
|
||||
}
|
||||
|
@ -163,8 +163,8 @@ class quota extends baseModule {
|
|||
}
|
||||
|
||||
function module_ready() {
|
||||
if ($_SESSION[$this->base]->type=='user' && $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0]=='') return false;
|
||||
if ($_SESSION[$this->base]->type=='group' && $_SESSION[$this->base]->module['posixGroup']->attributes['cn'][0]=='') return false;
|
||||
if ($this->getAccountContainer()->type=='user' && $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0]=='') return false;
|
||||
if ($this->getAccountContainer()->type=='group' && $this->getAccountContainer()->module['posixGroup']->attributes['cn'][0]=='') return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -184,8 +184,8 @@ class quota extends baseModule {
|
|||
function postModifyActions($newAccount) {
|
||||
if (!isset($this->quota) || !is_array($this->quota)) return;
|
||||
// determine if this is a user or group account
|
||||
if ($_SESSION[$this->base]->type=='user') $id = $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0];
|
||||
if ($_SESSION[$this->base]->type=='group') $id = $_SESSION[$this->base]->module['posixGroup']->attributes['cn'][0];
|
||||
if ($this->getAccountContainer()->type=='user') $id = $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0];
|
||||
if ($this->getAccountContainer()->type=='group') $id = $this->getAccountContainer()->module['posixGroup']->attributes['cn'][0];
|
||||
// get list of lamdaemon servers
|
||||
$serverDescriptions = array();
|
||||
$lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers());
|
||||
|
@ -204,7 +204,7 @@ class quota extends baseModule {
|
|||
$quotastring = $quotastring . $this->quota[$server][$i][0] . ',' . $this->quota[$server][$i][2] . ',' . $this->quota[$server][$i][3]
|
||||
. ',' . $this->quota[$server][$i][6] . ',' . $this->quota[$server][$i][7] . ':';
|
||||
}
|
||||
$ret = lamdaemon(array($id . " quota set " . $_SESSION[$this->base]->type . " $quotastring\n"), $server);
|
||||
$ret = lamdaemon(array($id . " quota set " . $this->getAccountContainer()->type . " $quotastring\n"), $server);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -218,8 +218,8 @@ class quota extends baseModule {
|
|||
$this->initQuotas();
|
||||
if (!isset($this->quota) || !is_array($this->quota)) return true;
|
||||
// determine if this is a user or group account
|
||||
if ($_SESSION[$this->base]->type=='user') $id = $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0];
|
||||
if ($_SESSION[$this->base]->type=='group') $id = $_SESSION[$this->base]->module['posixGroup']->attributes['cn'][0];
|
||||
if ($this->getAccountContainer()->type=='user') $id = $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0];
|
||||
if ($this->getAccountContainer()->type=='group') $id = $this->getAccountContainer()->module['posixGroup']->attributes['cn'][0];
|
||||
// get list of lamdaemon servers
|
||||
$serverDescriptions = array();
|
||||
$lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers());
|
||||
|
@ -238,7 +238,7 @@ class quota extends baseModule {
|
|||
$quotastring = $quotastring . $this->quota[$server][$i][0] . ',0,0,0,0:';
|
||||
$i++;
|
||||
}
|
||||
$ret = lamdaemon(array($id . " quota set " . $_SESSION[$this->base]->type . " $quotastring\n"), $server);
|
||||
$ret = lamdaemon(array($id . " quota set " . $this->getAccountContainer()->type . " $quotastring\n"), $server);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -436,8 +436,8 @@ class sambaAccount extends baseModule {
|
|||
var $rids;
|
||||
|
||||
function module_ready() {
|
||||
if ($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]=='') return false;
|
||||
if ($_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0]=='') return false;
|
||||
if ($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]=='') return false;
|
||||
if ($this->getAccountContainer()->module['posixAccount']->attributes['uidNumber'][0]=='') return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -481,7 +481,7 @@ class sambaAccount extends baseModule {
|
|||
*/
|
||||
$special = false;
|
||||
if ($this->attributes['rid'][0] < 1000) $special = true;
|
||||
if (!$special) $this->attributes['rid'][0] == $_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0]*2+1000;
|
||||
if (!$special) $this->attributes['rid'][0] == $this->getAccountContainer()->module['posixAccount']->attributes['uidNumber'][0]*2+1000;
|
||||
$rids = array_values($this->rids);
|
||||
$wrid = false;
|
||||
for ($i=0; $i<count($rids); $i++) {
|
||||
|
@ -490,8 +490,8 @@ class sambaAccount extends baseModule {
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (!$wrid) $this->attributes['primaryGroupID'][0] = ($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]*2)+1001;
|
||||
$return = $_SESSION[$this->base]->save_module_attributes($this->attributes, $this->orig);
|
||||
if (!$wrid) $this->attributes['primaryGroupID'][0] = ($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]*2)+1001;
|
||||
$return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
@ -544,10 +544,10 @@ class sambaAccount extends baseModule {
|
|||
}
|
||||
|
||||
// host attributes
|
||||
if ($_SESSION[$this->base]->type=='host') {
|
||||
if ($this->getAccountContainer()->type=='host') {
|
||||
$this->attributes['primaryGroupID'][0] = $this->rids[_('Domain computers')];
|
||||
if ($_POST['ResetSambaPassword'] || (!$this->attributes['lmPassword'][0])) {
|
||||
$hostname = $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0];
|
||||
$hostname = $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0];
|
||||
$hostname = substr($hostname, 0, strlen($hostname) - 1);
|
||||
$this->attributes['lmPassword'][0] = lmPassword($hostname);
|
||||
$this->attributes['ntPassword'][0] = ntPassword($hostname);
|
||||
|
@ -575,13 +575,13 @@ class sambaAccount extends baseModule {
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (!$wrid) $this->attributes['primaryGroupID'][0] = ($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]*2)+1001;
|
||||
if (!$wrid) $this->attributes['primaryGroupID'][0] = ($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]*2)+1001;
|
||||
if ($_POST['useunixpwd']) $this->useunixpwd = true;
|
||||
else $this->useunixpwd = false;
|
||||
if ($_POST['useunixpwd']) {
|
||||
$this->useunixpwd = true;
|
||||
$this->attributes['lmPassword'][0] = lmPassword($_SESSION[$this->base]->module['posixAccount']->clearTextPassword);
|
||||
$this->attributes['ntPassword'][0] = ntPassword($_SESSION[$this->base]->module['posixAccount']->clearTextPassword);
|
||||
$this->attributes['lmPassword'][0] = lmPassword($this->getAccountContainer()->module['posixAccount']->clearTextPassword);
|
||||
$this->attributes['ntPassword'][0] = ntPassword($this->getAccountContainer()->module['posixAccount']->clearTextPassword);
|
||||
$this->attributes['pwdLastSet'][0] = time();
|
||||
}
|
||||
else $this->useunixpwd = false;
|
||||
|
@ -605,16 +605,16 @@ class sambaAccount extends baseModule {
|
|||
$this->attributes['rid'][0] = $this->rids[$_POST['rid']];
|
||||
}
|
||||
else {
|
||||
$this->attributes['rid'][0] = $_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0]*2+1000;
|
||||
$this->attributes['rid'][0] = $this->getAccountContainer()->module['posixAccount']->attributes['uidNumber'][0]*2+1000;
|
||||
}
|
||||
$this->attributes['smbHome'][0] = str_replace('$user', $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0], $this->attributes['smbHome'][0]);
|
||||
$this->attributes['smbHome'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['smbHome'][0]);
|
||||
$this->attributes['smbHome'][0] = str_replace('$user', $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0], $this->attributes['smbHome'][0]);
|
||||
$this->attributes['smbHome'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['smbHome'][0]);
|
||||
if ($this->attributes['smbHome'][0] != $_POST['smbHome']) $errors[] = $this->messages['homePath'][1];
|
||||
$this->attributes['scriptPath'][0] = str_replace('$user', $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0], $this->attributes['scriptPath'][0]);
|
||||
$this->attributes['scriptPath'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['scriptPath'][0]);
|
||||
$this->attributes['scriptPath'][0] = str_replace('$user', $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0], $this->attributes['scriptPath'][0]);
|
||||
$this->attributes['scriptPath'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['scriptPath'][0]);
|
||||
if ($this->attributes['scriptPath'][0] != $_POST['scriptPath']) $errors[] = $this->messages['logonScript'][1];
|
||||
$this->attributes['profilePath'][0] = str_replace('$user', $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0], $this->attributes['profilePath'][0]);
|
||||
$this->attributes['profilePath'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['profilePath'][0]);
|
||||
$this->attributes['profilePath'][0] = str_replace('$user', $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0], $this->attributes['profilePath'][0]);
|
||||
$this->attributes['profilePath'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['profilePath'][0]);
|
||||
if ($this->attributes['profiletPath'][0] != $_POST['profilePath']) $errors[] = $this->messages['profilePath'][1];
|
||||
if ( (!$this->attributes['smbHome'][0]=='') && (!get_preg($this->attributes['smbHome'][0], 'UNC')))
|
||||
$errors[] = $this->messages['homePath'][0];
|
||||
|
@ -626,10 +626,10 @@ class sambaAccount extends baseModule {
|
|||
// check values for host account
|
||||
else {
|
||||
if (!$this->attributes['rid'][0]) {
|
||||
$this->attributes['rid'][0] = ($_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0] * 2) + 1000;
|
||||
$this->attributes['rid'][0] = ($this->getAccountContainer()->module['posixAccount']->attributes['uidNumber'][0] * 2) + 1000;
|
||||
}
|
||||
if (!$this->attributes['primaryGroupID'][0]) {
|
||||
$this->attributes['primaryGroupID'][0] = ($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0] * 2) + 1001;
|
||||
$this->attributes['primaryGroupID'][0] = ($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0] * 2) + 1001;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -647,7 +647,7 @@ class sambaAccount extends baseModule {
|
|||
*/
|
||||
function process_userWorkstations() {
|
||||
// Load attributes
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
if (isset($_POST['availableUserWorkstations']) && isset($_POST['userWorkstations_add'])) { // Add workstations to list
|
||||
$temp = str_replace(' ', '', $this->attributes['userWorkstations'][0]);
|
||||
$workstations = explode (',', $temp);
|
||||
|
@ -699,7 +699,7 @@ class sambaAccount extends baseModule {
|
|||
1 => array('kind' => 'input', 'type' => 'text', 'name' => 'displayName', 'size' => '20', 'value' => $this->attributes['displayName'][0]),
|
||||
2 => array('kind' => 'help', 'value' => 'displayName'));
|
||||
// user attributes
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
if (isset($this->attributes['pwdCanChange'][0])) $canchangedate = getdate(intval($this->attributes['pwdCanChange'][0]));
|
||||
else $canchangedate = getdate(0);
|
||||
if (isset($this->attributes['pwdMustChange'][0])) $mustchangedate = getdate(intval($this->attributes['pwdMustChange'][0]));
|
||||
|
@ -718,7 +718,7 @@ class sambaAccount extends baseModule {
|
|||
0 => array('kind' => 'text', 'text' => _('Repeat password') ),
|
||||
1 => array('kind' => 'input', 'name' => 'lmPassword2', 'type' => 'password', 'size' => '20', 'maxlength' => '255', 'value' => ''),
|
||||
2 => array('kind' => 'help', 'value' => 'password'));
|
||||
if (isset($_SESSION[$this->base]->module['posixAccount']->clearTextPassword)) {
|
||||
if (isset($this->getAccountContainer()->module['posixAccount']->clearTextPassword)) {
|
||||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Use Unix password') ),
|
||||
1 => array ( 'kind' => 'input', 'name' => 'useunixpwd', 'type' => 'checkbox', 'checked' => $this->useunixpwd, 'value' => true),
|
||||
2 => array ('kind' => 'help', 'value' => 'pwdUnix'));
|
||||
|
@ -779,8 +779,8 @@ class sambaAccount extends baseModule {
|
|||
}
|
||||
else $options[] = $names[$i];
|
||||
}
|
||||
if ($wrid) $options[] = $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]);
|
||||
else $selected[] = $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]);
|
||||
if ($wrid) $options[] = $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]);
|
||||
else $selected[] = $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]);
|
||||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Windows group') ),
|
||||
1 => array ( 'kind' => 'select', 'name' => 'primaryGroupID', 'options' => $options, 'options_selected' => $selected),
|
||||
2 => array ( 'kind' => 'help', 'value' => 'group' ));
|
||||
|
@ -803,7 +803,7 @@ class sambaAccount extends baseModule {
|
|||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Domain') ),
|
||||
1 => array ( 'kind' => 'input', 'type' => 'text', 'name' => 'domain', 'size' => '20', 'maxlength' => '255', 'value' => $this->attributes['domain'][0]),
|
||||
2 => array ( 'kind' => 'help', 'value' => 'domain' ));
|
||||
if ($_SESSION[$this->base]->type=='host') {
|
||||
if ($this->getAccountContainer()->type=='host') {
|
||||
$return[] = array ( 0 => array ( 'kind' => 'input', 'name' => 'acctFlagsW', 'type' => 'hidden', 'value' => 'true' ));
|
||||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Reset password') ),
|
||||
1 => array ( 'kind' => 'input', 'type' => 'submit', 'name' => 'ResetSambaPassword', 'value' => _('Reset')),
|
||||
|
@ -817,7 +817,7 @@ class sambaAccount extends baseModule {
|
|||
* It will output a complete html-table
|
||||
*/
|
||||
function display_html_userWorkstations() {
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
// Get list of all hosts.
|
||||
$result = $_SESSION['cache']->get_cache('uid', 'sambaAccount', 'host');
|
||||
if (is_array($result)) {
|
||||
|
|
|
@ -206,7 +206,7 @@ class sambaDomain extends baseModule {
|
|||
function display_html_attributes() {
|
||||
$return = array();
|
||||
// domain name
|
||||
if ($_SESSION[$this->base]->isNewAccount) {
|
||||
if ($this->getAccountContainer()->isNewAccount) {
|
||||
$return[] = array(
|
||||
0 => array('kind' => 'text', 'text' => _('Domain name').'*'),
|
||||
1 => array('kind' => 'input', 'name' => 'domainName', 'type' => 'text', 'value' => $this->attributes['sambaDomainName'][0]),
|
||||
|
@ -219,7 +219,7 @@ class sambaDomain extends baseModule {
|
|||
2 => array('kind' => 'help', 'value' => 'domainName'));
|
||||
}
|
||||
// domain SID
|
||||
if ($_SESSION[$this->base]->isNewAccount) {
|
||||
if ($this->getAccountContainer()->isNewAccount) {
|
||||
$return[] = array(
|
||||
0 => array('kind' => 'text', 'text' => _('Domain SID').'*'),
|
||||
1 => array('kind' => 'input', 'name' => 'domainSID', 'type' => 'text', 'value' => $this->attributes['sambaSID'][0]),
|
||||
|
@ -326,7 +326,7 @@ class sambaDomain extends baseModule {
|
|||
2 => array('kind' => 'help', 'value' => 'nextGroupRID'));
|
||||
// RID base
|
||||
if (!isset($this->attributes['sambaAlgorithmicRidBase'][0])) $this->attributes['sambaAlgorithmicRidBase'][0] = 1000;
|
||||
if ($_SESSION[$this->base]->isNewAccount) {
|
||||
if ($this->getAccountContainer()->isNewAccount) {
|
||||
$return[] = array(
|
||||
0 => array('kind' => 'text', 'text' => _('RID base').'*'),
|
||||
1 => array('kind' => 'input', 'name' => 'RIDbase', 'type' => 'text', 'value' => $this->attributes['sambaAlgorithmicRidBase'][0]),
|
||||
|
@ -349,7 +349,7 @@ class sambaDomain extends baseModule {
|
|||
*/
|
||||
function process_attributes() {
|
||||
$errors = array();
|
||||
if ($_SESSION[$this->base]->isNewAccount) {
|
||||
if ($this->getAccountContainer()->isNewAccount) {
|
||||
// domain SID
|
||||
if (!get_preg($_POST['domainSID'], 'domainSID')) {
|
||||
$errors[] = $this->messages['domainSID'][0];
|
||||
|
|
|
@ -200,8 +200,8 @@ class sambaGroupMapping extends baseModule {
|
|||
}
|
||||
else $options[] = $names[$i];
|
||||
}
|
||||
if ($wrid) $options[] = $_SESSION[$this->base]->module['posixGroup']->attributes['cn'][0];
|
||||
else $selected[] = $_SESSION[$this->base]->module['posixGroup']->attributes['cn'][0];
|
||||
if ($wrid) $options[] = $this->getAccountContainer()->module['posixGroup']->attributes['cn'][0];
|
||||
else $selected[] = $this->getAccountContainer()->module['posixGroup']->attributes['cn'][0];
|
||||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Windows group') ),
|
||||
1 => array ( 'kind' => 'select', 'name' => 'sambaSID', 'options' => $options, 'options_selected' => $selected),
|
||||
2 => array ( 'kind' => 'help', 'value' => 'sambaSID' ));
|
||||
|
@ -390,7 +390,7 @@ class sambaGroupMapping extends baseModule {
|
|||
|
||||
|
||||
function module_ready() {
|
||||
if ($_SESSION[$this->base]->module['posixGroup']->attributes['gidNumber'][0]=='') return false;
|
||||
if ($this->getAccountContainer()->module['posixGroup']->attributes['gidNumber'][0]=='') return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -429,7 +429,7 @@ class sambaGroupMapping extends baseModule {
|
|||
// Get Domain SID
|
||||
$this->attributes['sambaSID'][0] = $SID."-".$this->rids[$rids[$i]];
|
||||
// Do a check if special group is unique
|
||||
if ($_SESSION[$this->base]->isNewAccount) {
|
||||
if ($this->getAccountContainer()->isNewAccount) {
|
||||
if ($_SESSION['cache']->in_cache($SID."-".$this->rids[$rids[$i]], 'sambaSID', 'group')) {
|
||||
$message = $this->messages['sambaSID'][0];
|
||||
$message[] = $rids[$i];
|
||||
|
@ -438,7 +438,7 @@ class sambaGroupMapping extends baseModule {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (!$wrid) $this->attributes['sambaSID'][0] = $SID . "-" . ($_SESSION[$this->base]->module['posixGroup']->attributes['gidNumber'][0]*2+$RIDbase+1);
|
||||
if (!$wrid) $this->attributes['sambaSID'][0] = $SID . "-" . ($this->getAccountContainer()->module['posixGroup']->attributes['gidNumber'][0]*2+$RIDbase+1);
|
||||
// Return error-messages
|
||||
return $errors;
|
||||
}
|
||||
|
@ -470,8 +470,8 @@ class sambaGroupMapping extends baseModule {
|
|||
$wrid=true;
|
||||
}
|
||||
}
|
||||
if (!$wrid) $this->attributes['sambaSID'][0] == $SID."-".($_SESSION[$this->base]->module['posixGroup']->attributes['gidNumber'][0]*2+1+$RIDbase);
|
||||
$return = $_SESSION[$this->base]->save_module_attributes($this->attributes, $this->orig);
|
||||
if (!$wrid) $this->attributes['sambaSID'][0] == $SID."-".($this->getAccountContainer()->module['posixGroup']->attributes['gidNumber'][0]*2+1+$RIDbase);
|
||||
$return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
|
|
@ -492,9 +492,9 @@ class sambaSamAccount extends baseModule {
|
|||
* @return boolean true, if page can be displayed
|
||||
*/
|
||||
function module_ready() {
|
||||
if ($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]=='') return false;
|
||||
if ($_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0]=='') return false;
|
||||
if ($_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0]=='') return false;
|
||||
if ($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]=='') return false;
|
||||
if ($this->getAccountContainer()->module['posixAccount']->attributes['uidNumber'][0]=='') return false;
|
||||
if ($this->getAccountContainer()->module['posixAccount']->attributes['uid'][0]=='') return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -549,9 +549,9 @@ class sambaSamAccount extends baseModule {
|
|||
$special = false;
|
||||
if ($this->attributes['sambaSID'][0] == $SID."-500") $special = true;
|
||||
if ($this->attributes['sambaSID'][0] == $SID."-501") $special = true;
|
||||
if (!$special) $this->attributes['sambaSID'][0] == $SID."-".($_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0]*2+$RIDbase);
|
||||
if (!$special) $this->attributes['sambaSID'][0] == $SID."-".($this->getAccountContainer()->module['posixAccount']->attributes['uidNumber'][0]*2+$RIDbase);
|
||||
|
||||
$return = $_SESSION[$this->base]->save_module_attributes($this->attributes, $this->orig);
|
||||
$return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
@ -619,10 +619,10 @@ class sambaSamAccount extends baseModule {
|
|||
}
|
||||
|
||||
// host attributes
|
||||
if ($_SESSION[$this->base]->type=='host') {
|
||||
if ($this->getAccountContainer()->type=='host') {
|
||||
$this->attributes['sambaPrimaryGroupSID'][0] = $SID."-".$this->rids[_('Domain computers')];
|
||||
if ($_POST['ResetSambaPassword'] || !$this->attributes['sambaLMPassword'][0]) {
|
||||
$hostname = $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0];
|
||||
$hostname = $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0];
|
||||
$hostname = substr($hostname, 0, strlen($hostname) - 1);
|
||||
$this->attributes['sambaLMPassword'][0] = lmPassword($hostname);
|
||||
$this->attributes['sambaNTPassword'][0] = ntPassword($hostname);
|
||||
|
@ -630,7 +630,7 @@ class sambaSamAccount extends baseModule {
|
|||
}
|
||||
}
|
||||
// user attributes
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
$this->attributes['sambaHomePath'][0] = $_POST['sambaHomePath'];
|
||||
if ($_POST['sambaHomeDrive'] == "-")
|
||||
$this->attributes['sambaHomeDrive'][0] = '';
|
||||
|
@ -648,7 +648,7 @@ class sambaSamAccount extends baseModule {
|
|||
}
|
||||
}
|
||||
if (!$wrid) {
|
||||
$gidnumber = $_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0];
|
||||
$gidnumber = $this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0];
|
||||
$groups = $_SESSION['cache']->get_cache(array('gidNumber', 'sambaSID'), 'sambaGroupMapping', 'group');
|
||||
$groupKeys = array_keys($groups);
|
||||
for ($i = 0; $i < sizeof($groupKeys); $i++) {
|
||||
|
@ -663,8 +663,8 @@ class sambaSamAccount extends baseModule {
|
|||
|
||||
if ($_POST['useunixpwd']) {
|
||||
$this->useunixpwd = true;
|
||||
$this->attributes['sambaLMPassword'][0] = lmPassword($_SESSION[$this->base]->module['posixAccount']->clearTextPassword);
|
||||
$this->attributes['sambaNTPassword'][0] = ntPassword($_SESSION[$this->base]->module['posixAccount']->clearTextPassword);
|
||||
$this->attributes['sambaLMPassword'][0] = lmPassword($this->getAccountContainer()->module['posixAccount']->clearTextPassword);
|
||||
$this->attributes['sambaNTPassword'][0] = ntPassword($this->getAccountContainer()->module['posixAccount']->clearTextPassword);
|
||||
$this->attributes['sambaPwdLastSet'][0] = time();
|
||||
}
|
||||
else $this->useunixpwd = false;
|
||||
|
@ -692,18 +692,18 @@ class sambaSamAccount extends baseModule {
|
|||
$rid = substr($this->attributes['sambaSID'][0], strrpos($this->attributes['sambaSID'][0], '-') + 1, strlen($this->attributes['sambaSID'][0]));
|
||||
// change only if not yet set or previously set to special SID
|
||||
if (!$this->attributes['sambaSID'][0] || in_array($rid, $this->rids)) {
|
||||
$this->attributes['sambaSID'][0] = $SID."-". (($_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0]*2)+$RIDbase);
|
||||
$this->attributes['sambaSID'][0] = $SID."-". (($this->getAccountContainer()->module['posixAccount']->attributes['uidNumber'][0]*2)+$RIDbase);
|
||||
}
|
||||
}
|
||||
// Check values
|
||||
$this->attributes['sambaHomePath'][0] = str_replace('$user', $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0], $this->attributes['sambaHomePath'][0]);
|
||||
$this->attributes['sambaHomePath'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['sambaHomePath'][0]);
|
||||
$this->attributes['sambaHomePath'][0] = str_replace('$user', $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0], $this->attributes['sambaHomePath'][0]);
|
||||
$this->attributes['sambaHomePath'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['sambaHomePath'][0]);
|
||||
if ($this->attributes['sambaHomePath'][0] != $_POST['sambaHomePath']) $errors[] = $this->messages['homePath'][1];
|
||||
$this->attributes['sambaLogonScript'][0] = str_replace('$user', $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0], $this->attributes['sambaLogonScript'][0]);
|
||||
$this->attributes['sambaLogonScript'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['sambaLogonScript'][0]);
|
||||
$this->attributes['sambaLogonScript'][0] = str_replace('$user', $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0], $this->attributes['sambaLogonScript'][0]);
|
||||
$this->attributes['sambaLogonScript'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['sambaLogonScript'][0]);
|
||||
if ($this->attributes['sambaLogonScript'][0] != $_POST['sambaLogonScript']) $errors[] = $this->messages['logonScript'][1];
|
||||
$this->attributes['sambaProfilePath'][0] = str_replace('$user', $_SESSION[$this->base]->module['posixAccount']->attributes['uid'][0], $this->attributes['sambaProfilePath'][0]);
|
||||
$this->attributes['sambaProfilePath'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['sambaProfilePath'][0]);
|
||||
$this->attributes['sambaProfilePath'][0] = str_replace('$user', $this->getAccountContainer()->module['posixAccount']->attributes['uid'][0], $this->attributes['sambaProfilePath'][0]);
|
||||
$this->attributes['sambaProfilePath'][0] = str_replace('$group', $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]), $this->attributes['sambaProfilePath'][0]);
|
||||
if ($this->attributes['sambaProfilePath'][0] != $_POST['sambaProfilePath']) $errors[] = $this->messages['profilePath'][1];
|
||||
if ( (!$this->attributes['sambaHomePath'][0]=='') && (!get_preg($this->attributes['sambaHomePath'][0], 'UNC')))
|
||||
$errors[] = $this->messages['homePath'][0];
|
||||
|
@ -715,7 +715,7 @@ class sambaSamAccount extends baseModule {
|
|||
}
|
||||
else { // host
|
||||
if (!$this->attributes['sambaSID'][0]) {
|
||||
$this->attributes['sambaSID'][0] = $SID."-". (($_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0]*2)+$RIDbase);
|
||||
$this->attributes['sambaSID'][0] = $SID."-". (($this->getAccountContainer()->module['posixAccount']->attributes['uidNumber'][0]*2)+$RIDbase);
|
||||
}
|
||||
}
|
||||
return $errors;
|
||||
|
@ -729,7 +729,7 @@ class sambaSamAccount extends baseModule {
|
|||
*/
|
||||
function process_sambaUserWorkstations() {
|
||||
// Load attributes
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
if (isset($_POST['availableSambaUserWorkstations']) && isset($_POST['sambaUserWorkstations_add'])) { // Add workstations to list
|
||||
$temp = str_replace(' ', '', $this->attributes['sambaUserWorkstations'][0]);
|
||||
$workstations = explode (',', $temp);
|
||||
|
@ -878,7 +878,7 @@ class sambaSamAccount extends baseModule {
|
|||
0 => array('kind' => 'text', 'text' => _('Display name')),
|
||||
1 => array('kind' => 'input', 'type' => 'text', 'name' => 'displayName', 'size' => '20', 'value' => $this->attributes['displayName'][0]),
|
||||
2 => array('kind' => 'help', 'value' => 'displayName'));
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
$return[] = array ( 0 => array ( 'kind' => 'input', 'name' => 'sambaPwdCanChange_h', 'type' => 'hidden', 'value' => $canchangedate['hours']),
|
||||
1 => array ( 'kind' => 'input', 'name' => 'sambaPwdCanChange_m', 'type' => 'hidden', 'value' => $canchangedate['minutes']),
|
||||
2 => array ( 'kind' => 'input', 'name' => 'sambaPwdCanChange_s', 'type' => 'hidden', 'value' => $canchangedate['seconds']),
|
||||
|
@ -896,7 +896,7 @@ class sambaSamAccount extends baseModule {
|
|||
$return[] = array(
|
||||
0 => array('kind' => 'text', 'text' => _('Repeat password')),
|
||||
1 => array('kind' => 'input', 'name' => 'sambaLMPassword2', 'type' => 'password', 'size' => '20', 'maxlength' => '255'));
|
||||
if (isset($_SESSION[$this->base]->module['posixAccount']->clearTextPassword)) {
|
||||
if (isset($this->getAccountContainer()->module['posixAccount']->clearTextPassword)) {
|
||||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Use Unix password') ),
|
||||
1 => array ( 'kind' => 'input', 'name' => 'useunixpwd', 'type' => 'checkbox', 'checked' => $this->useunixpwd),
|
||||
2 => array ('kind' => 'help', 'value' => 'useunixpwd'));
|
||||
|
@ -1003,8 +1003,8 @@ class sambaSamAccount extends baseModule {
|
|||
}
|
||||
else $options[] = $names[$i];
|
||||
}
|
||||
if ($wrid) $options[] = $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]);
|
||||
else $selected[] = $_SESSION['cache']->getgrnam($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]);
|
||||
if ($wrid) $options[] = $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]);
|
||||
else $selected[] = $_SESSION['cache']->getgrnam($this->getAccountContainer()->module['posixAccount']->attributes['gidNumber'][0]);
|
||||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Windows group') ),
|
||||
1 => array ( 'kind' => 'select', 'name' => 'sambaPrimaryGroupSID', 'options' => $options, 'options_selected' => $selected),
|
||||
2 => array ( 'kind' => 'help', 'value' => 'group' ));
|
||||
|
@ -1031,13 +1031,13 @@ class sambaSamAccount extends baseModule {
|
|||
1 => array ( 'kind' => 'select', 'name' => 'sambaDomainName', 'options' => $sambaDomainNames, 'options_selected' => array($sel_domain)),
|
||||
2 => array ( 'kind' => 'help', 'value' => 'domain' ));
|
||||
// logon hours
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Logon hours') ),
|
||||
1 => array ( 'kind' => 'input', 'type' => 'submit', 'name' => 'form_subpage_sambaSamAccount_logonHours_open', 'value' => _('Edit logon hours')),
|
||||
2 => array ( 'kind' => 'help', 'value' => 'logonHours' ));
|
||||
}
|
||||
// reset host password
|
||||
if ($_SESSION[$this->base]->type=='host') {
|
||||
if ($this->getAccountContainer()->type=='host') {
|
||||
$return[] = array ( 0 => array ( 'kind' => 'input', 'name' => 'sambaAcctFlagsW', 'type' => 'hidden', 'value' => 'true' ));
|
||||
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Reset password') ),
|
||||
1 => array ( 'kind' => 'input', 'type' => 'submit', 'name' => 'ResetSambaPassword', 'value' => _('Reset')),
|
||||
|
@ -1058,7 +1058,7 @@ class sambaSamAccount extends baseModule {
|
|||
* It will output a complete html-table
|
||||
*/
|
||||
function display_html_sambaUserWorkstations() {
|
||||
if ($_SESSION[$this->base]->type=='user') {
|
||||
if ($this->getAccountContainer()->type=='user') {
|
||||
// Get list of all hosts.
|
||||
$result = $_SESSION['cache']->get_cache('uid', 'sambaSamAccount', 'host');
|
||||
if (is_array($result)) {
|
||||
|
|
|
@ -219,13 +219,13 @@ class shadowAccount extends baseModule {
|
|||
* <br>"modify" are attributes which have to been modified in LDAP entry
|
||||
*/
|
||||
function save_attributes() {
|
||||
$return = $_SESSION[$this->base]->save_module_attributes($this->attributes, $this->orig);
|
||||
$return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig);
|
||||
// Set shadowLastchange manual.
|
||||
if (isset($_SESSION[$this->base]->module['posixAccount']->clearTextPassword)) {
|
||||
$return[$_SESSION[$this->base]->dn]['modify']['shadowLastChange'] = array(intval(time()/3600/24));
|
||||
if (isset($this->getAccountContainer()->module['posixAccount']->clearTextPassword)) {
|
||||
$return[$this->getAccountContainer()->dn]['modify']['shadowLastChange'] = array(intval(time()/3600/24));
|
||||
}
|
||||
elseif ($_SESSION[$this->base]->isNewAccount) {
|
||||
$return[$_SESSION[$this->base]->dn]['add']['shadowLastChange'] = array(intval(time()/3600/24));
|
||||
elseif ($this->getAccountContainer()->isNewAccount) {
|
||||
$return[$this->getAccountContainer()->dn]['add']['shadowLastChange'] = array(intval(time()/3600/24));
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue