Page MenuHomePhorge

kolab_admin_form_value_actions.php
No OneTemporary

Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None

kolab_admin_form_value_actions.php

<?php
/**
*
*/
class kolab_admin_form_value_actions extends kolab_admin_service
{
public function capabilities($domain)
{
return array(
'generate_cn' => 'w',
'generate_displayname' => 'w',
'generate_mail' => 'w',
'generate_password' => 'r',
'generate_uid' => 'w',
'generate_userpassword' => 'r',
// 'info' => 'r',
);
}
public function generate_cn($getdata, $postdata) {
if (!isset($postdata['user_type_id'])) {
throw new Exception("No user type ID specified", 34);
}
$user_type = mysql_fetch_assoc(query("SELECT attributes FROM user_types WHERE id = '" . $postdata['user_type_id'] ."'"));
$uta = json_decode(unserialize($user_type['attributes']), true);
if (isset($uta['auto_form_fields']) && isset($uta['auto_form_fields']['cn'])) {
// Use Data Please
foreach ($uta['auto_form_fields']['cn']['data'] as $key) {
if (!isset($postdata[$key])) {
throw new Exception("Key not set: " . $key, 12356);
}
}
return Array("cn" => $postdata['givenname'] . " " . $postdata['sn']);
}
}
public function generate_displayname($getdata, $postdata) {
if (!isset($postdata['user_type_id'])) {
throw new Exception("No user type ID specified", 34);
}
$user_type = mysql_fetch_assoc(query("SELECT attributes FROM user_types WHERE id = '" . $postdata['user_type_id'] ."'"));
$uta = json_decode(unserialize($user_type['attributes']), true);
if (isset($uta['auto_form_fields']) && isset($uta['auto_form_fields']['displayname'])) {
// Use Data Please
foreach ($uta['auto_form_fields']['displayname']['data'] as $key) {
if (!isset($postdata[$key])) {
throw new Exception("Key not set: " . $key, 12356);
}
}
return Array("displayname" => $postdata['sn'] . ", " . $postdata['givenname']);
}
}
public function generate_mail($getdata, $postdata) {
if (!isset($postdata['user_type_id'])) {
throw new Exception("No user type ID specified", 34);
}
$user_type = mysql_fetch_assoc(query("SELECT attributes FROM user_types WHERE id = '" . $postdata['user_type_id'] ."'"));
$uta = json_decode(unserialize($user_type['attributes']), true);
if (isset($uta['auto_form_fields']) && isset($uta['auto_form_fields']['mail'])) {
// Use Data Please
foreach ($uta['auto_form_fields']['mail']['data'] as $key) {
if (!isset($postdata[$key])) {
throw new Exception("Key not set: " . $key, 12356);
}
}
$givenname = iconv('UTF-8', 'ASCII//TRANSLIT', $postdata['givenname']);
$sn = iconv('UTF-8', 'ASCII//TRANSLIT', $postdata['sn']);
$givenname = strtolower($givenname);
$sn = str_replace(' ', '', $sn);
$sn = strtolower($sn);
$mail = $givenname . "." . $sn . "@" . $_SESSION['user']->get_domain();
$orig_mail = $mail;
$auth = Auth::get_instance($_SESSION['user']->get_domain());
$x = 2;
while ($auth->user_find_by_attribute(Array('mail' => $mail))) {
list($mail_local, $mail_domain) = explode('@', $orig_mail);
$mail = $mail_local . $x . '@' . $mail_domain;
$x++;
}
return Array('mail' => $mail);
}
}
public function generate_password($getdata, $postdata) {
exec("head -c 200 /dev/urandom | tr -dc _A-Z-a-z-0-9 | head -c15", $userpassword_plain);
$userpassword_plain = $userpassword_plain[0];
return Array('password' => $userpassword_plain);
}
public function generate_uid($getdata, $postdata) {
if (!isset($postdata['user_type_id'])) {
throw new Exception("No user type ID specified", 34);
}
$user_type = mysql_fetch_assoc(query("SELECT attributes FROM user_types WHERE id = '" . $postdata['user_type_id'] ."'"));
$uta = json_decode(unserialize($user_type['attributes']), true);
if (isset($uta['auto_form_fields']) && isset($uta['auto_form_fields']['uid'])) {
// Use Data Please
foreach ($uta['auto_form_fields']['uid']['data'] as $key) {
if (!isset($postdata[$key])) {
throw new Exception("Key not set: " . $key, 12356);
}
}
$uid = iconv('UTF-8', 'ASCII//TRANSLIT', $postdata['sn']);
$uid = strtolower($uid);
$uid = str_replace(' ', '', $uid);
$orig_uid = $uid;
$auth = Auth::get_instance($_SESSION['user']->get_domain());
$user = $auth->user_find_by_attribute(Array('uid' => $uid));
$x = 2;
while ($auth->user_find_by_attribute(Array('uid' => $uid))) {
$uid = $orig_uid . $x;
$x++;
}
return Array('uid' => $uid);
}
}
public function generate_userpassword($getdata, $postdata) {
$password = $this->generate_password($getdata, $postdata);
return Array('userpassword' => $password['password']);
}
}
?>

File Metadata

Mime Type
text/x-php
Expires
Mon, Apr 6, 12:29 AM (6 d, 22 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18831715
Default Alt Text
kolab_admin_form_value_actions.php (5 KB)

Event Timeline