Kaynağa Gözat

Merge branch 'master' of https://github.com/unaio/una

AntonLV 2 yıl önce
ebeveyn
işleme
4d5f35eaab

+ 11 - 0
inc/classes/BxDolSessionQuery.php

@@ -41,6 +41,8 @@ class BxDolSessionQuery extends BxDolDb
         if ($this->getOne("SELECT `date` FROM `" . $this->sTable . "` WHERE `id` = :id AND `data` = :data AND `user_id` = :user_id AND `date` > UNIX_TIMESTAMP() - " . BX_DOL_SESSION_SKIP_UPDATE, $aBind))
             return true;
 
+        $this->updateLastActivity($sId);
+
         return (int)$this->query("INSERT INTO `" . $this->sTable . "` SET " . $this->arrayToSQL($aSet) . " ON DUPLICATE KEY UPDATE " . $this->arrayToSQL($aUpdate)) > 0;
     }
 	function update($sId, $aSet = array())
@@ -48,6 +50,8 @@ class BxDolSessionQuery extends BxDolDb
     	$sSet = !empty($aSet) ? $this->arrayToSQL($aSet) . ", " : "";
     	$sSet .= "`date`=UNIX_TIMESTAMP()";
 
+        $this->updateLastActivity($sId);
+
         $iRet = (int)$this->query("UPDATE `" . $this->sTable . "` SET " . $sSet . " WHERE `id`=:id", array('id' => $sId)) > 0;
         $this->setReadOnlyMode(true);
         return $iRet;
@@ -78,6 +82,13 @@ class BxDolSessionQuery extends BxDolDb
         return $iRet;
     }
     
+    function updateLastActivity($iId)
+    {
+        if (defined('BX_DOL_SESSION_UPDATE_ACTIVE') && ($aRow = $this->getRow("SELECT `date`, `user_id` FROM `" . $this->sTable . "` WHERE `id` = :id AND `date` < UNIX_TIMESTAMP() - " . BX_DOL_SESSION_UPDATE_ACTIVE, ['id' => $iId]))) {
+            $this->updateLastActivityAccount($aRow['user_id'], $aRow['date']);
+        }
+    }
+
     function updateLastActivityAccount($iId, $iDate)
     {
         if ($iDate > 0)

+ 11 - 9
template/scripts/BxBaseAccountForms.php

@@ -191,14 +191,15 @@ class BxBaseAccountForms extends BxDolProfileForms
 
     public function deleteAccountForm ($iAccountId)
     {
+        $bIsApi = bx_is_api();
         $oAccount = BxDolAccount::getInstance($iAccountId);
         $aAccountInfo = $oAccount ? $oAccount->getInfo() : false;
         if (!$aAccountInfo)
-            return MsgBox(_t('_sys_txt_error_account_is_not_defined'));
+            return $bIsApi ? _t('_sys_txt_error_account_is_not_defined') : MsgBox(_t('_sys_txt_error_account_is_not_defined'));
 
         // check access
         if (CHECK_ACTION_RESULT_ALLOWED !== ($sMsg = BxDolAccount::isAllowedDelete ($this->_iProfileId, $aAccountInfo)))
-            return MsgBox($sMsg);
+            return $bIsApi ? $sMsg : MsgBox($sMsg);
 
         // check and display form
         $oForm = $this->getObjectFormDelete();
@@ -206,7 +207,7 @@ class BxBaseAccountForms extends BxDolProfileForms
             $oForm->aInputs['delete_content']['value'] = (int)bx_get('content');
 
         if (!$oForm)
-            return MsgBox(_t('_sys_txt_error_occured'));
+            return $bIsApi ? _t('_sys_txt_error_occured') : MsgBox(_t('_sys_txt_error_occured'));
 
         if (!$oForm->isSubmitted())
             unset($aAccountInfo['password']);
@@ -214,12 +215,12 @@ class BxBaseAccountForms extends BxDolProfileForms
         $oForm->initChecker($aAccountInfo);
 
         if (!$oForm->isSubmittedAndValid())
-            return $oForm->getCode();
+            return $bIsApi ? $oForm->getCodeAPI() : $oForm->getCode();
 
         // delete account
         $oAccount = BxDolAccount::getInstance($aAccountInfo['id']);
         if (!$oAccount->delete(false === bx_get('delete_content') ? true : (int)$oForm->getCleanValue('delete_content') != 0))
-            return MsgBox(_t('_sys_txt_error_account_delete'));
+            return $bIsApi ? _t('_sys_txt_error_account_delete') : MsgBox(_t('_sys_txt_error_account_delete'));
 
         // logout from deleted account
         if($iAccountId == getLoggedId())
@@ -292,12 +293,13 @@ class BxBaseAccountForms extends BxDolProfileForms
         // create an alert
         bx_alert('account', 'edited', $aAccountInfo['id'], $aAccountInfo['id'], array('display' => $sDisplayName));
 
-        // display result message
+        // display result message            
+        $sMsg = MsgBox(_t('_' . $sDisplayName . '_successfully_submitted'));
+        
         if ($bIsApi){
-            return $oForm->getCodeAPI();
+            return ['form' => $oForm->getCodeAPI(), 'msg' => _t('_' . $sDisplayName . '_successfully_submitted')];
         }
-            
-        $sMsg = MsgBox(_t('_' . $sDisplayName . '_successfully_submitted'));
+        
         return $sMsg . $oForm->getCode();
     }     
 }

+ 80 - 16
template/scripts/BxBaseServiceAccount.php

@@ -139,16 +139,29 @@ class BxBaseServiceAccount extends BxDol
         $bApi = bx_is_api();
         
         $mixedResult =$this->_oAccountForms->editAccountEmailSettingsForm($iAccountId);
+        
         if($bApi) {
-            if(is_array($mixedResult))
+            if(is_array($mixedResult)){
+                if (isset($mixedResult['form'] )){
+                    return [
+                        bx_api_get_msg($mixedResult['msg']),
+                        bx_api_get_block('form', $mixedResult['form'], [
+                        'ext' => [
+                            'request' => ['url' => '/api.php?r=system/account_settings_email/TemplServiceAccount', 'immutable' => true]
+                        ]
+                    ])];
+                }
+                else{
                 return [bx_api_get_block('form', $mixedResult, [
                     'ext' => [
                         'request' => ['url' => '/api.php?r=system/account_settings_email/TemplServiceAccount', 'immutable' => true]
                     ]
                 ])];
+                }
+            }
             else
-                return bx_api_get_msg($mixedResult);
-        }
+                return [bx_api_get_msg($mixedResult)];
+        }    
         
         return $mixedResult;
     }
@@ -162,14 +175,26 @@ class BxBaseServiceAccount extends BxDol
         
         $mixedResult =$this->_oAccountForms->editAccountPasswordSettingsForm($iAccountId);
         if($bApi) {
-            if(is_array($mixedResult))
-                return [bx_api_get_block('form', $mixedResult, [
-                    'ext' => [
-                        'request' => ['url' => '/api.php?r=system/account_settings_password/TemplServiceAccount', 'immutable' => true]
-                    ]
-                ])];
+            if(is_array($mixedResult)){
+                if (isset($mixedResult['form'] )){
+                    return [
+                        bx_api_get_msg($mixedResult['msg']),
+                        bx_api_get_block('form', $mixedResult['form'], [
+                        'ext' => [
+                            'request' => ['url' => '/api.php?r=system/account_settings_password/TemplServiceAccount', 'immutable' => true]
+                        ]
+                    ])];
+                }
+                else{
+                    return [bx_api_get_block('form', $mixedResult, [
+                        'ext' => [
+                            'request' => ['url' => '/api.php?r=system/account_settings_password/TemplServiceAccount', 'immutable' => true]
+                        ]
+                    ])];
+                }
+            }
             else
-                return bx_api_get_msg($mixedResult);
+                return [bx_api_get_msg($mixedResult)];
         }
         
         return $mixedResult;
@@ -183,17 +208,29 @@ class BxBaseServiceAccount extends BxDol
         $bApi = bx_is_api();
         
         $mixedResult =$this->_oAccountForms->editAccountInfoForm($iAccountId);
+        
         if($bApi) {
-            if(is_array($mixedResult))
+            if(is_array($mixedResult)){
+                if (isset($mixedResult['form'] )){
+                    return [
+                        bx_api_get_msg($mixedResult['msg']),
+                        bx_api_get_block('form', $mixedResult['form'], [
+                        'ext' => [
+                            'request' => ['url' => '/api.php?r=system/account_settings_info/TemplServiceAccount', 'immutable' => true]
+                        ]
+                    ])];
+                }
+                else{
                 return [bx_api_get_block('form', $mixedResult, [
                     'ext' => [
-                        'request' => ['url' => '/api.php?r=system/account_settings_email/TemplServiceAccount', 'immutable' => true]
+                            'request' => ['url' => '/api.php?r=system/account_settings_info/TemplServiceAccount', 'immutable' => true]
                     ]
                 ])];
+                }
+            }
             else
-                return bx_api_get_msg($mixedResult);
-        }
-        
+                return [bx_api_get_msg($mixedResult)];
+        }    
         return $mixedResult;
     }
 
@@ -204,7 +241,34 @@ class BxBaseServiceAccount extends BxDol
         if (!$iAccountId)
             $iAccountId = getLoggedId();
 
-        return $this->_oAccountForms->deleteAccountForm($iAccountId);
+        $bApi = bx_is_api();
+        
+        $mixedResult = $this->_oAccountForms->deleteAccountForm($iAccountId);
+        
+        if($bApi) {
+            if(is_array($mixedResult)){
+                if (isset($mixedResult['form'] )){
+                    return [
+                        bx_api_get_msg($mixedResult['msg']),
+                        bx_api_get_block('form', $mixedResult['form'], [
+                        'ext' => [
+                            'request' => ['url' => '/api.php?r=system/account_settings_del_account/TemplServiceAccount', 'immutable' => true]
+                        ]
+                    ])];
+                }
+                else{
+                return [bx_api_get_block('form', $mixedResult, [
+                    'ext' => [
+                        'request' => ['url' => '/api.php?r=system/account_settings_del_account/TemplServiceAccount', 'immutable' => true]
+                    ]
+                ])];
+                }
+            }
+            else
+                return [];
+        }
+
+        return $mixedResult;
     }
 
     /**

+ 3 - 1
template/scripts/BxBaseServices.php

@@ -52,12 +52,14 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
             'CreateAccountForm' => 'BxBaseServiceAccount',
             'AccountSettingsEmail' => 'BxBaseServiceAccount',
             'AccountSettingsPassword' => 'BxBaseServiceAccount',
+            'AccountSettingsDelAccount' => 'BxBaseServiceAccount',
+            'AccountSettingsInfo' => 'BxBaseServiceAccount',
             'ForgotPassword' => 'BxBaseServiceAccount',
             'SwitchProfile' => 'BxBaseServiceAccount',
             'AccountProfileSwitcher' => 'BxBaseServiceAccount',
             'EmailConfirmation' => 'BxBaseServiceAccount',
             'ConfirmEmail' => 'BxBaseServiceAccount',
-
+            
             'CategoriesList' => 'BxBaseServiceCategory',
 
             'Test' => 'BxBaseServiceLogin',