Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117882345
kolab_admin_form_value_actions.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
kolab_admin_form_value_actions.php
View Options
<?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
Details
Attached
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)
Attached To
Mode
rWAP webadmin
Attached
Detach File
Event Timeline