2016-10-06 15:57:01 +00:00
< ? php
/**
* Project :
* Contenido Content Management System
*
* Description :
* Frontend user editor
*
* @ package Contenido Backend includes
* @ version 1.1 . 10
* @ author unknown
* @ copyright four for business AG < www . 4 fb . de >
* @ license http :// www . contenido . org / license / LIZENZ . txt
* @ link http :// www . 4 fb . de
* @ link http :// www . contenido . org
* @ since file available since contenido release <= 4.6
*
2019-07-03 11:58:28 +00:00
* $Id $ :
2016-10-06 15:57:01 +00:00
*/
if ( ! defined ( 'CON_FRAMEWORK' )) {
die ( 'Illegal call' );
}
$oPage = new cPage ();
$oPage -> setHtml5 ();
$oFeUsers = new FrontendUserCollection ();
if ( is_array ( $cfg [ 'plugins' ][ 'frontendusers' ])) {
foreach ( $cfg [ 'plugins' ][ 'frontendusers' ] as $plugin ) {
plugin_include ( " frontendusers " , $plugin . " / " . $plugin . " .php " );
}
}
$oFeUser = $feuser = new FrontendUser ( $idfrontenduser );
$oFEGroupMemberCollection = new FrontendGroupMemberCollection ;
$oFEGroupMemberCollection -> setWhere ( 'idfrontenduser' , $idfrontenduser );
$oFEGroupMemberCollection -> addResultField ( 'idfrontendgroup' );
$oFEGroupMemberCollection -> query ();
# Fetch all groups the user belongs to (no goup, one group, more than one group).
# The array $aFEGroup can be used in frontenduser plugins to display selfdefined user properties group dependent.
$aFEGroup = array ();
while ( $oFEGroup = $oFEGroupMemberCollection -> next ()) {
$aFEGroup [] = $oFEGroup -> get ( " idfrontendgroup " );
}
if ( $action == " frontend_create " && $perm -> have_perm_area_action ( " frontend " , " frontend_create " )) {
$oFeUser = $oFeUsers -> create ( " " . i18n ( " -- new user -- " ));
$idfrontenduser = $oFeUser -> get ( " idfrontenduser " );
}
if ( $idfrontenduser && $action != '' ) {
$sReloadScript = " <script type= \" text/javascript \" >
var left_bottom = parent . parent . frames [ 'left' ] . frames [ 'left_bottom' ];
if ( left_bottom ) {
var href = left_bottom . location . href ;
href = href . replace ( /& frontenduser .*/ , '' );
left_bottom . location . href = href + '&frontenduser=' + " . $idfrontenduser . " ;
top . content . left . left_top . refresh ();
}
</ script > " ;
} else {
$sReloadScript = " " ;
}
$sFormCheck = '
< script type = " text/javascript " >
var defaultName = " '. i18n( " -- new user -- " ).' " ;
var PwEmpty = '.(($oFeUser->get("password") == "d41d8cd98f00b204e9800998ecf8427e")?"true":"false").' ;
function checkUserForm () {
if ( document . getElementById ( " m1 " ) . value . match ( / defaultName / i )) {
alert ( " Default username, please use a new one! " );
return false ;
}
if ( PwEmpty == true && document . getElementById ( " m2 " ) . value == " " ) {
alert ( " Password not set yet! You have to set a new password! " );
return false ;
}
return true ;
}
</ script >
' ;
$oPage -> addScript ( " formcheck " , $sFormCheck );
// Delete FE-User
if ( $action == " frontend_delete " && $perm -> have_perm_area_action ( " frontend " , " frontend_delete " )) {
$oFeUsers -> delete ( $idfrontenduser );
$iterator = $_cecRegistry -> getIterator ( " Contenido.Permissions.FrontendUser.AfterDeletion " );
while ( $chainEntry = $iterator -> next ()) {
$chainEntry -> execute ( $idfrontenduser );
}
$idfrontenduser = 0 ;
$oFeUser = new FrontendUser ();
$oPage -> addScript ( 'reload' , $sReloadScript );
}
if ( $oFeUser -> virgin == false && $oFeUser -> get ( " idclient " ) == $client ) {
// check and save changes
if ( $action == " frontend_save_user " ) {
$oPage -> addScript ( 'reload' , $sReloadScript );
$messages = array ();
$bStore = true ;
$initname = i18n ( " -- new user -- " );
$bNewUser = ( strstr ( $username , $initname ) === false ) ? false : true ;
if ( empty ( $username ) || $bNewUser ) {
$messages [] = i18n ( " Username empty or not set! Please choose one. " );
$bStore = false ;
}
// check for empty password
if ( $bStore && empty ( $newpd ) && $oFeUser -> get ( " password " ) == " d41d8cd98f00b204e9800998ecf8427e " ) {
$messages [] = i18n ( " Password not set right now! " );
$bStore = false ;
}
if ( $bStore && $oFeUser -> get ( " username " ) != stripslashes ( $username )) {
$oFeUsers -> select ( " username = ' " . urlencode ( $username ) . " ' and idclient=' $client ' " );
if ( $oFeUsers -> next ()) {
$messages [] = i18n ( " Could not set new username: Username already exists " );
} else {
$oFeUser -> set ( " username " , stripslashes ( $username ));
}
}
if ( $newpd != $newpd2 ) {
$messages [] = i18n ( " Could not set new password: Passwords don't match " );
} else {
if ( $newpd != " " ) {
$oFeUser -> set ( " password " , $newpd );
}
}
$oFeUser -> set ( " active " , $active );
/* Check out if there are any plugins */
if ( is_array ( $cfg [ 'plugins' ][ 'frontendusers' ])) {
foreach ( $cfg [ 'plugins' ][ 'frontendusers' ] as $plugin ) {
if ( function_exists ( " frontendusers_ " . $plugin . " _wantedVariables " ) &&
function_exists ( " frontendusers_ " . $plugin . " _store " )) {
# check if user belongs to a specific group
# if true store values defined in frontenduser plugin
if ( function_exists ( " frontendusers_ " . $plugin . " _checkUserGroup " )) {
$bCheckUserGroup = call_user_func ( " frontendusers_ " . $plugin . " _checkUserGroup " );
} else {
$bCheckUserGroup = true ;
}
if ( $bCheckUserGroup ) {
$wantVariables = call_user_func ( " frontendusers_ " . $plugin . " _wantedVariables " );
if ( is_array ( $wantVariables )) {
$varArray = array ();
foreach ( $wantVariables as $value ) {
$varArray [ $value ] = stripslashes ( $GLOBALS [ $value ]);
}
}
$store = call_user_func ( " frontendusers_ " . $plugin . " _store " , $varArray );
}
}
}
}
if ( $bStore ) $oFeUser -> store ();
}
if ( count ( $messages ) > 0 ) {
$notis = $notification -> returnNotification ( " warning " , implode ( " <br> " , $messages )) . " <br> " ;
}
$form = new UI_Table_Form ( " properties " );
$form -> setSubmitJS ( " return checkUserForm(); " );
$form -> setVar ( " frame " , $frame );
$form -> setVar ( " area " , $area );
$form -> setVar ( " action " , " frontend_save_user " );
$form -> setVar ( " idfrontenduser " , $idfrontenduser );
$form -> addHeader ( i18n ( " Edit user " ));
$username = new cHTMLTextbox ( " username " , (( isset ( $_POST [ 'username' ]) && $bStore === false ) ? $_POST [ 'username' ] : $oFeUser -> get ( " username " )), 40 );
$newpw = new cHTMLPasswordBox ( " newpd " , " " , 40 );
$newpw2 = new cHTMLPasswordBox ( " newpd2 " , " " , 40 );
$active = new cHTMLCheckbox ( " active " , " 1 " );
$active -> setChecked ( $oFeUser -> get ( " active " ));
$form -> add ( i18n ( " User name " ), $username -> render ());
$form -> add ( i18n ( " New password " ), $newpw -> render ());
$form -> add ( i18n ( " New password (again) " ), $newpw2 -> render ());
$form -> add ( i18n ( " Active " ), $active -> toHTML ( false ));
$pluginOrder = trim_array ( explode ( " , " , getSystemProperty ( " plugin " , " frontendusers-pluginorder " )));
/* Check out if there are any plugins */
if ( is_array ( $pluginOrder )) {
foreach ( $pluginOrder as $plugin ) {
if ( function_exists ( " frontendusers_ " . $plugin . " _getTitle " ) &&
function_exists ( " frontendusers_ " . $plugin . " _display " )) {
# check if user belongs to a specific group
# if true display frontenduser plugin
if ( function_exists ( " frontendusers_ " . $plugin . " _checkUserGroup " )) {
$bCheckUserGroup = call_user_func ( " frontendusers_ " . $plugin . " _checkUserGroup " );
} else {
$bCheckUserGroup = true ;
}
if ( $bCheckUserGroup ) {
$plugTitle = call_user_func ( " frontendusers_ " . $plugin . " _getTitle " );
$display = call_user_func ( " frontendusers_ " . $plugin . " _display " , $oFeUser );
if ( is_array ( $plugTitle ) && is_array ( $display )) {
foreach ( $plugTitle as $key => $value ) {
$form -> add ( $value , $display [ $key ]);
}
} else {
if ( is_array ( $plugTitle ) || is_array ( $display )) {
$form -> add ( i18n ( " WARNING " ), sprintf ( i18n ( " The plugin %s delivered an array for the displayed titles, but did not return an array for the contents. " ), $plugin ));
} else {
$form -> add ( $plugTitle , $display );
}
}
}
}
}
$arrGroups = $oFeUser -> getGroupsForUser ();
if ( count ( $arrGroups ) > 0 ) {
$aMemberGroups = array ();
foreach ( $arrGroups as $iGroup ) {
$oMemberGroup = new FrontendGroup ( $iGroup );
$aMemberGroups [] = $oMemberGroup -> get ( " groupname " );
}
asort ( $aMemberGroups );
$sTemp = implode ( '<br/>' , $aMemberGroups );
} else {
$sTemp = i18n ( " none " );
}
$form -> add ( i18n ( " Group membership " ), $sTemp );
$form -> add ( i18n ( " Author " ), $classuser -> getUserName ( $oFeUser -> get ( " author " )) . " ( " . $oFeUser -> get ( " created " ) . " ) " );
$form -> add ( i18n ( " Last modified by " ), $classuser -> getUserName ( $oFeUser -> get ( " modifiedby " )) . " ( " . $oFeUser -> get ( " modified " ) . " ) " );
}
//$sDialog = '<div id="dialog" title="Dialog Title">I\'m in a dialog</div>';
$sDialog = " " ;
$oPage -> setContent ( $notis . $form -> render ( true ) . $sDialog );
$oPage -> addScript ( 'reload' , $sReloadScript );
} else {
$oPage -> setContent ( " " );
}
$oPage -> render ();
?>