Go to the documentation of this file.00001 <?php
00002
00008 class User_Main extends oxAdminDetails
00009 {
00010 private $_sSaveError = null;
00011
00019 public function render()
00020 {
00021 $myConfig = $this->getConfig();
00022 $soxId = oxConfig::getParameter( "oxid");
00023
00024 parent::render();
00025
00026
00027 $oAuthUser = oxNew( 'oxuser' );
00028 $oAuthUser->loadAdminUser();
00029 $blisMallAdmin = $oAuthUser->oxuser__oxrights->value == "malladmin";
00030
00031
00032 $oGroups = oxNew( "oxlist" );
00033 $oGroups->init( "oxgroups" );
00034 $oGroups->selectString( "select * from oxgroups order by oxgroups.oxtitle" );
00035
00036
00037 $aUserRights = array();
00038 $oLang = oxLang::getInstance();
00039 $iTplLang = $oLang->getTplLanguage();
00040
00041 $iPos = count( $aUserRights );
00042 $aUserRights[$iPos] = new OxstdClass();
00043 $aUserRights[$iPos]->name = $oLang->translateString( "user", $iTplLang );
00044 $aUserRights[$iPos]->id = "user";
00045
00046 if ( $blisMallAdmin ) {
00047 $iPos = count( $aUserRights );
00048 $aUserRights[$iPos] = new OxstdClass();
00049 $aUserRights[$iPos]->id = "malladmin";
00050 $aUserRights[$iPos]->name = $oLang->translateString( "Admin", $iTplLang );
00051 }
00052
00053
00054 $soxId = oxConfig::getParameter( "oxid");
00055
00056 $sSavedID = oxConfig::getParameter( "saved_oxid");
00057 if ( ( $soxId == "-1" || !isset( $soxId ) ) && isset( $sSavedID ) ) {
00058 $soxId = $sSavedID;
00059 oxSession::deleteVar( "saved_oxid");
00060 $this->_aViewData["oxid"] = $soxId;
00061
00062 $this->_aViewData["updatelist"] = "1";
00063 }
00064
00065 if ( $soxId != "-1" && isset( $soxId ) ) {
00066
00067 $oUser = oxNew( "oxuser" );
00068 $oUser->load( $soxId);
00069 $this->_aViewData["edit"] = $oUser;
00070
00071 if ( !( $oUser->oxuser__oxrights->value == "malladmin" && !$blisMallAdmin ) ) {
00072
00073 reset( $aUserRights );
00074 while ( list(, $val ) = each( $aUserRights ) ) {
00075 if ( $val->id == $oUser->oxuser__oxrights->value) {
00076 $val->selected = 1;
00077 break;
00078 }
00079 }
00080 }
00081 }
00082
00083
00084 $oCountryList = oxNew( "oxCountryList" );
00085 $oCountryList->loadActiveCountries( $oLang->getObjectTplLanguage() );
00086
00087 $this->_aViewData["countrylist"] = $oCountryList;
00088
00089 $this->_aViewData["allgroups"] = $oGroups;
00090
00091 $this->_aViewData["rights"] = $aUserRights;
00092
00093 if ($this->_sSaveError) {
00094 $this->_aViewData["sSaveError"] = $this->_sSaveError;
00095 }
00096
00097 if (!$this->_allowAdminEdit($soxId))
00098 $this->_aViewData['readonly'] = true;
00099 if ( oxConfig::getParameter("aoc") ) {
00100
00101 $aColumns = array();
00102 include_once 'inc/'.strtolower(__CLASS__).'.inc.php';
00103 $this->_aViewData['oxajax'] = $aColumns;
00104
00105 return "popups/user_main.tpl";
00106 }
00107 return "user_main.tpl";
00108 }
00109
00115 public function save()
00116 {
00117
00118
00119 $soxId = oxConfig::getParameter( "oxid" );
00120 if ( $this->_allowAdminEdit( $soxId ) ) {
00121
00122 $aParams = oxConfig::getParameter( "editval");
00123
00124
00125 if ( !isset( $aParams['oxuser__oxactive'] ) ) {
00126 $aParams['oxuser__oxactive'] = 0;
00127 }
00128
00129 $oUser = oxNew( "oxuser" );
00130 if ( $soxId != "-1" ) {
00131 $oUser->load( $soxId );
00132 } else {
00133 $aParams['oxuser__oxid'] = null;
00134 }
00135
00136
00137 if ( ( $sNewPass = oxConfig::getParameter( "newPassword" ) ) ) {
00138 $oUser->setPassword( $sNewPass );
00139 }
00140
00141
00142 if ( $oUser->checkIfEmailExists( $aParams['oxuser__oxusername'] ) ) {
00143 $this->_sSaveError = 'EXCEPTION_USER_USEREXISTS';
00144 return;
00145 }
00146
00147 $oUser->assign( $aParams );
00148
00149
00150
00151 $oUser->oxuser__oxbirthdate->fldtype = 'char';
00152
00153 try {
00154 $oUser->save();
00155 $this->_aViewData["updatelist"] = "1";
00156
00157
00158 if ( $soxId == "-1" ) {
00159 oxSession::setVar( "saved_oxid", $oUser->getId() );
00160 }
00161 } catch ( Exception $oExcp ) {
00162 $this->_sSaveError = $oExcp->getMessage();
00163 }
00164 }
00165 }
00166 }