finished self service
This commit is contained in:
parent
8df0d846ae
commit
c1efcc6c27
|
@ -126,8 +126,7 @@ class kolabUser extends baseModule {
|
||||||
$return['selfServiceFieldSettings'] = array(
|
$return['selfServiceFieldSettings'] = array(
|
||||||
'kolabFreeBusyFuture' => _('Free/Busy interval'),
|
'kolabFreeBusyFuture' => _('Free/Busy interval'),
|
||||||
'kolabDelegate' => _('Delegates'),
|
'kolabDelegate' => _('Delegates'),
|
||||||
'kolabInvitationPolicy' => _('Invitation policy'),
|
'kolabInvitationPolicy' => _('Invitation policy')
|
||||||
'alias' => _('EMail alias')
|
|
||||||
);
|
);
|
||||||
// self service configuration settings
|
// self service configuration settings
|
||||||
$return['selfServiceSettings'] = array(
|
$return['selfServiceSettings'] = array(
|
||||||
|
@ -305,37 +304,37 @@ class kolabUser extends baseModule {
|
||||||
// check if account is marked for deletion
|
// check if account is marked for deletion
|
||||||
if (isset($this->attributes['kolabDeleteflag'])) {
|
if (isset($this->attributes['kolabDeleteflag'])) {
|
||||||
$return[] = array(
|
$return[] = array(
|
||||||
0 => array('kind' => 'text', 'text' => _('This account is marked for deletion.')));
|
array('kind' => 'text', 'text' => _('This account is marked for deletion.')));
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
// country
|
// country
|
||||||
$return[] = array(
|
$return[] = array(
|
||||||
0 => array('kind' => 'text', 'text' => _('Country')),
|
array('kind' => 'text', 'text' => _('Country')),
|
||||||
1 => array('kind' => 'input', 'name' => 'country', 'type' => 'text', 'value' => $this->attributes['c'][0]),
|
array('kind' => 'input', 'name' => 'country', 'type' => 'text', 'value' => $this->attributes['c'][0]),
|
||||||
2 => array('kind' => 'help', 'value' => 'country'));
|
array('kind' => 'help', 'value' => 'country'));
|
||||||
// mailbox server
|
// mailbox server
|
||||||
if (!isset($this->orig['kolabHomeServer'][0])) { // value currently not set
|
if (!isset($this->orig['kolabHomeServer'][0])) { // value currently not set
|
||||||
$return[] = array(
|
$return[] = array(
|
||||||
0 => array('kind' => 'text', 'text' => _('Mailbox home server') . "*"),
|
array('kind' => 'text', 'text' => _('Mailbox home server') . "*"),
|
||||||
1 => array('kind' => 'input', 'name' => 'homeServer', 'type' => 'text', 'value' => $this->attributes['kolabHomeServer'][0]),
|
array('kind' => 'input', 'name' => 'homeServer', 'type' => 'text', 'value' => $this->attributes['kolabHomeServer'][0]),
|
||||||
2 => array('kind' => 'help', 'value' => 'homeServer'));
|
array('kind' => 'help', 'value' => 'homeServer'));
|
||||||
}
|
}
|
||||||
else { // input is unchangable when set
|
else { // input is unchangable when set
|
||||||
$return[] = array(
|
$return[] = array(
|
||||||
0 => array('kind' => 'text', 'text' => _('Mailbox home server')),
|
array('kind' => 'text', 'text' => _('Mailbox home server')),
|
||||||
1 => array('kind' => 'text', 'text' => $this->orig['kolabHomeServer'][0]),
|
array('kind' => 'text', 'text' => $this->orig['kolabHomeServer'][0]),
|
||||||
2 => array('kind' => 'help', 'value' => 'homeServer'));
|
array('kind' => 'help', 'value' => 'homeServer'));
|
||||||
}
|
}
|
||||||
// Cyrus mail quota
|
// Cyrus mail quota
|
||||||
$return[] = array(
|
$return[] = array(
|
||||||
0 => array('kind' => 'text', 'text' => _('Mail quota')),
|
array('kind' => 'text', 'text' => _('Mail quota')),
|
||||||
1 => array('kind' => 'input', 'name' => 'quota', 'type' => 'text', 'value' => $this->attributes['cyrus-userquota'][0]),
|
array('kind' => 'input', 'name' => 'quota', 'type' => 'text', 'value' => $this->attributes['cyrus-userquota'][0]),
|
||||||
2 => array('kind' => 'help', 'value' => 'quota'));
|
array('kind' => 'help', 'value' => 'quota'));
|
||||||
// free/busy future
|
// free/busy future
|
||||||
$return[] = array(
|
$return[] = array(
|
||||||
0 => array('kind' => 'text', 'text' => _('Free/Busy interval')),
|
array('kind' => 'text', 'text' => _('Free/Busy interval')),
|
||||||
1 => array('kind' => 'input', 'name' => 'freeBusy', 'type' => 'text', 'value' => $this->attributes['kolabFreeBusyFuture'][0]),
|
array('kind' => 'input', 'name' => 'freeBusy', 'type' => 'text', 'value' => $this->attributes['kolabFreeBusyFuture'][0]),
|
||||||
2 => array('kind' => 'help', 'value' => 'freeBusy'));
|
array('kind' => 'help', 'value' => 'freeBusy'));
|
||||||
// invitation policies
|
// invitation policies
|
||||||
$returnPol = array();
|
$returnPol = array();
|
||||||
// default invitation policy
|
// default invitation policy
|
||||||
|
@ -350,26 +349,26 @@ class kolabUser extends baseModule {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$returnPol[] = array(
|
$returnPol[] = array(
|
||||||
0 => array('kind' => 'text', 'text' => _('Anyone')),
|
array('kind' => 'text', 'text' => _('Anyone')),
|
||||||
1 => array('kind' => 'select', 'name' => 'defaultInvPol', 'options' => array_values($this->invitationPolicies), 'options_selected' => $defaultInvPol),
|
array('kind' => 'select', 'name' => 'defaultInvPol', 'options' => array_values($this->invitationPolicies), 'options_selected' => $defaultInvPol),
|
||||||
2 => array('kind' => 'help', 'value' => 'invPol'));
|
array('kind' => 'help', 'value' => 'invPol'));
|
||||||
// other invitation policies
|
// other invitation policies
|
||||||
for ($i = 0; $i < sizeof($this->attributes['kolabInvitationPolicy']); $i++) {
|
for ($i = 0; $i < sizeof($this->attributes['kolabInvitationPolicy']); $i++) {
|
||||||
$parts = split(":", $this->attributes['kolabInvitationPolicy'][$i]);
|
$parts = split(":", $this->attributes['kolabInvitationPolicy'][$i]);
|
||||||
if (sizeof($parts) == 2) {
|
if (sizeof($parts) == 2) {
|
||||||
$returnPol[] = array(
|
$returnPol[] = array(
|
||||||
0 => array('kind' => 'input', 'name' => 'invPol1' . $i, 'type' => 'text', 'value' => $parts[0]),
|
array('kind' => 'input', 'name' => 'invPol1' . $i, 'type' => 'text', 'value' => $parts[0]),
|
||||||
1 => array('kind' => 'select', 'name' => 'invPol2' . $i, 'options' => array_values($this->invitationPolicies), 'options_selected' => $this->invitationPolicies[$parts[1]]),
|
array('kind' => 'select', 'name' => 'invPol2' . $i, 'options' => array_values($this->invitationPolicies), 'options_selected' => $this->invitationPolicies[$parts[1]]),
|
||||||
2 => array('kind' => 'input', 'type' => 'submit', 'name' => 'delInvPol' . $i, 'value' => _("Remove")),
|
array('kind' => 'input', 'type' => 'submit', 'name' => 'delInvPol' . $i, 'value' => _("Remove")),
|
||||||
3 => array('kind' => 'help', 'value' => 'invPol'));
|
array('kind' => 'help', 'value' => 'invPol'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// input box for new invitation policy
|
// input box for new invitation policy
|
||||||
$returnPol[] = array(
|
$returnPol[] = array(
|
||||||
0 => array('kind' => 'input', 'name' => 'invPol1', 'type' => 'text', 'value' => ''),
|
array('kind' => 'input', 'name' => 'invPol1', 'type' => 'text', 'value' => ''),
|
||||||
1 => array('kind' => 'select', 'name' => 'invPol2', 'options' => array_values($this->invitationPolicies)),
|
array('kind' => 'select', 'name' => 'invPol2', 'options' => array_values($this->invitationPolicies)),
|
||||||
2 => array('kind' => 'input', 'type' => 'submit', 'name' => 'addInvPol', 'value' => _("Add")),
|
array('kind' => 'input', 'type' => 'submit', 'name' => 'addInvPol', 'value' => _("Add")),
|
||||||
3 => array('kind' => 'help', 'value' => 'invPol'));
|
array('kind' => 'help', 'value' => 'invPol'));
|
||||||
$returnPol = array(
|
$returnPol = array(
|
||||||
array('kind' => 'fieldset', 'legend' => _('Invitation policy'), 'value' => $returnPol, 'td' => array('colspan' => 3))
|
array('kind' => 'fieldset', 'legend' => _('Invitation policy'), 'value' => $returnPol, 'td' => array('colspan' => 3))
|
||||||
);
|
);
|
||||||
|
@ -378,15 +377,15 @@ class kolabUser extends baseModule {
|
||||||
$returnAliases = array();
|
$returnAliases = array();
|
||||||
for ($i = 0; $i < sizeof($this->attributes['alias']); $i++) {
|
for ($i = 0; $i < sizeof($this->attributes['alias']); $i++) {
|
||||||
$returnAliases[] = array(
|
$returnAliases[] = array(
|
||||||
0 => array('kind' => 'input', 'name' => 'alias' . $i, 'type' => 'text', 'value' => $this->attributes['alias'][$i]),
|
array('kind' => 'input', 'name' => 'alias' . $i, 'type' => 'text', 'value' => $this->attributes['alias'][$i]),
|
||||||
1 => array('kind' => 'input', 'type' => 'submit', 'name' => 'delAlias' . $i, 'value' => _("Remove")),
|
array('kind' => 'input', 'type' => 'submit', 'name' => 'delAlias' . $i, 'value' => _("Remove")),
|
||||||
2 => array('kind' => 'help', 'value' => 'alias'));
|
array('kind' => 'help', 'value' => 'alias'));
|
||||||
}
|
}
|
||||||
// input box for new mail alias
|
// input box for new mail alias
|
||||||
$returnAliases[] = array(
|
$returnAliases[] = array(
|
||||||
0 => array('kind' => 'input', 'name' => 'alias', 'type' => 'text', 'value' => ''),
|
array('kind' => 'input', 'name' => 'alias', 'type' => 'text', 'value' => ''),
|
||||||
1 => array('kind' => 'input', 'type' => 'submit', 'name' => 'addAlias', 'value' => _("Add")),
|
array('kind' => 'input', 'type' => 'submit', 'name' => 'addAlias', 'value' => _("Add")),
|
||||||
2 => array('kind' => 'help', 'value' => 'alias'));
|
array('kind' => 'help', 'value' => 'alias'));
|
||||||
$returnAliases = array(
|
$returnAliases = array(
|
||||||
array('kind' => 'fieldset', 'legend' => _('EMail aliases'), 'value' => $returnAliases, 'td' => array('colspan' => 3))
|
array('kind' => 'fieldset', 'legend' => _('EMail aliases'), 'value' => $returnAliases, 'td' => array('colspan' => 3))
|
||||||
);
|
);
|
||||||
|
@ -828,6 +827,7 @@ class kolabUser extends baseModule {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
$return = array();
|
$return = array();
|
||||||
|
// free/busy future
|
||||||
if (in_array('kolabFreeBusyFuture', $fields)) {
|
if (in_array('kolabFreeBusyFuture', $fields)) {
|
||||||
$kolabFreeBusyFuture = '';
|
$kolabFreeBusyFuture = '';
|
||||||
if (isset($attributes['kolabFreeBusyFuture'][0])) {
|
if (isset($attributes['kolabFreeBusyFuture'][0])) {
|
||||||
|
@ -838,6 +838,7 @@ class kolabUser extends baseModule {
|
||||||
array('kind' => 'input', 'name' => 'kolabUser_kolabFreeBusyFuture', 'type' => 'text', 'size' => '30',
|
array('kind' => 'input', 'name' => 'kolabUser_kolabFreeBusyFuture', 'type' => 'text', 'size' => '30',
|
||||||
'maxlength' => '255', 'value' => $kolabFreeBusyFuture));
|
'maxlength' => '255', 'value' => $kolabFreeBusyFuture));
|
||||||
}
|
}
|
||||||
|
// delegates
|
||||||
if (in_array('kolabDelegate', $fields)) {
|
if (in_array('kolabDelegate', $fields)) {
|
||||||
$delegates = array();
|
$delegates = array();
|
||||||
$sr = @ldap_search($_SESSION['ldapHandle'], $this->selfServiceSettings['kolabUser_suffix'][0], '(&(objectClass=inetOrgPerson)(mail=*))', array('mail'));
|
$sr = @ldap_search($_SESSION['ldapHandle'], $this->selfServiceSettings['kolabUser_suffix'][0], '(&(objectClass=inetOrgPerson)(mail=*))', array('mail'));
|
||||||
|
@ -880,6 +881,46 @@ class kolabUser extends baseModule {
|
||||||
array('kind' => 'fieldset', 'value' => $delegateFields, 'legend' => _('Delegates'), 'td' => array('colspan' => 2))
|
array('kind' => 'fieldset', 'value' => $delegateFields, 'legend' => _('Delegates'), 'td' => array('colspan' => 2))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// invitation policies
|
||||||
|
if (in_array('kolabInvitationPolicy', $fields)) {
|
||||||
|
$returnPol = array();
|
||||||
|
// default invitation policy
|
||||||
|
$defaultInvPol = $this->invitationPolicies['ACT_MANUAL'];
|
||||||
|
for ($i = 0; $i < sizeof($attributes['kolabInvitationPolicy']); $i++) {
|
||||||
|
$parts = split(":", $attributes['kolabInvitationPolicy'][$i]);
|
||||||
|
if (sizeof($parts) == 1) {
|
||||||
|
$defaultInvPol = $this->invitationPolicies[$attributes['kolabInvitationPolicy'][$i]];
|
||||||
|
unset($attributes['kolabInvitationPolicy'][$i]);
|
||||||
|
$attributes['kolabInvitationPolicy'] = array_values($attributes['kolabInvitationPolicy']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$returnPol[] = array(
|
||||||
|
array('kind' => 'text', 'text' => _('Anyone')),
|
||||||
|
array('kind' => 'select', 'name' => 'defaultInvPol', 'options' => array_values($this->invitationPolicies), 'options_selected' => $defaultInvPol),
|
||||||
|
array('kind' => 'text', 'text' => ''));
|
||||||
|
// other invitation policies
|
||||||
|
for ($i = 0; $i < sizeof($attributes['kolabInvitationPolicy']); $i++) {
|
||||||
|
$parts = split(":", $attributes['kolabInvitationPolicy'][$i]);
|
||||||
|
if (sizeof($parts) == 2) {
|
||||||
|
$returnPol[] = array(
|
||||||
|
array('kind' => 'input', 'name' => 'invPol1' . $i, 'type' => 'text', 'value' => $parts[0]),
|
||||||
|
array('kind' => 'select', 'name' => 'invPol2' . $i, 'options' => array_values($this->invitationPolicies), 'options_selected' => $this->invitationPolicies[$parts[1]]),
|
||||||
|
array('kind' => 'input', 'type' => 'checkbox', 'name' => 'delInvPol' . $i),
|
||||||
|
array('kind' => 'text', 'text' => _("Remove")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// input box for new invitation policy
|
||||||
|
$returnPol[] = array(
|
||||||
|
array('kind' => 'input', 'name' => 'invPol1', 'type' => 'text', 'value' => ''),
|
||||||
|
array('kind' => 'select', 'name' => 'invPol2', 'options' => array_values($this->invitationPolicies)),
|
||||||
|
array('kind' => 'input', 'type' => 'checkbox', 'name' => 'addInvPol'),
|
||||||
|
array('kind' => 'text', 'text' => _("Add")));
|
||||||
|
$returnPol = array(
|
||||||
|
array('kind' => 'fieldset', 'legend' => _('Invitation policy'), 'value' => $returnPol, 'td' => array('colspan' => 3))
|
||||||
|
);
|
||||||
|
$return['kolabInvitationPolicy'] = $returnPol;
|
||||||
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -917,16 +958,58 @@ class kolabUser extends baseModule {
|
||||||
for ($i = 0; $i < sizeof($postKeys); $i++) {
|
for ($i = 0; $i < sizeof($postKeys); $i++) {
|
||||||
if (strpos($postKeys[$i], 'delDelegate_') !== false) {
|
if (strpos($postKeys[$i], 'delDelegate_') !== false) {
|
||||||
$sKey = substr($postKeys[$i], strlen('delDelegate_'));
|
$sKey = substr($postKeys[$i], strlen('delDelegate_'));
|
||||||
echo $_SESSION['kolabUser_kolabDelegate'][$sKey];
|
|
||||||
$key = array_search($_SESSION['kolabUser_kolabDelegate'][$sKey], $attributesNew['kolabDelegate']);
|
$key = array_search($_SESSION['kolabUser_kolabDelegate'][$sKey], $attributesNew['kolabDelegate']);
|
||||||
if ($key !== false) {
|
if ($key !== false) {
|
||||||
echo "SEPP";
|
|
||||||
unset($attributesNew['kolabDelegate'][$key]);
|
unset($attributesNew['kolabDelegate'][$key]);
|
||||||
$attributesNew['kolabDelegate'] = array_values($attributesNew['kolabDelegate']);
|
$attributesNew['kolabDelegate'] = array_values($attributesNew['kolabDelegate']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// invitation policies
|
||||||
|
if (in_array('kolabInvitationPolicy', $fields)) {
|
||||||
|
$attributeNames[] = 'kolabInvitationPolicy';
|
||||||
|
$policies = array_flip($this->invitationPolicies);
|
||||||
|
$attributesNew['kolabInvitationPolicy'] = array();
|
||||||
|
// check old invitation policies
|
||||||
|
$targets = array();
|
||||||
|
$i = 0;
|
||||||
|
while (isset($_POST['invPol1' . $i])) {
|
||||||
|
if (isset($_POST['delInvPol' . $i])) {
|
||||||
|
$i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (isset($_POST['invPol2' . $i]) && ($_POST['invPol1' . $i] != "") && !in_array($_POST['invPol1' . $i], $targets)) {
|
||||||
|
$targets[] = $_POST['invPol1' . $i];
|
||||||
|
// check invitation policy
|
||||||
|
if (!get_preg($_POST['invPol1' . $i], 'email')) {
|
||||||
|
$message = $this->messages['invPol'][0];
|
||||||
|
$message[] = $_POST['invPol1' . $i];
|
||||||
|
$errors[] = $message;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$attributesNew['kolabInvitationPolicy'][] = $_POST['invPol1' . $i] . ':' . $policies[$_POST['invPol2' . $i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
// check new invitation policy
|
||||||
|
if (isset($_POST['invPol1']) && ($_POST['invPol1'] != "") && !in_array($_POST['invPol1'], $targets)) {
|
||||||
|
// check new invitation policy
|
||||||
|
if (!get_preg($_POST['invPol1'], 'email')) {
|
||||||
|
$message = $this->messages['invPol'][0];
|
||||||
|
$message[] = $_POST['invPol1'];
|
||||||
|
$errors[] = $message;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$attributesNew['kolabInvitationPolicy'][] = $_POST['invPol1'] . ':' . $policies[$_POST['invPol2']];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// default invitation policy
|
||||||
|
if (isset($_POST['defaultInvPol']) && ($_POST['defaultInvPol'] != "")) {
|
||||||
|
$attributesNew['kolabInvitationPolicy'][] = $policies[$_POST['defaultInvPol']];
|
||||||
|
}
|
||||||
|
}
|
||||||
// find differences
|
// find differences
|
||||||
for ($i = 0; $i < sizeof($attributeNames); $i++) {
|
for ($i = 0; $i < sizeof($attributeNames); $i++) {
|
||||||
$attrName = $attributeNames[$i];
|
$attrName = $attributeNames[$i];
|
||||||
|
|
Loading…
Reference in New Issue