Browse Source

#4558 - Build-in API support (confirmEmail + setBages)

romanlesnikov 1 year ago
parent
commit
4b7d48d022

+ 11 - 1
template/scripts/BxBaseServiceAccount.php

@@ -535,7 +535,17 @@ class BxBaseServiceAccount extends BxDol
     public function serviceConfirmEmail($sKey)
     {
         $mixedAccountId = $this->_confirmEmail($sKey);
-        return is_int($mixedAccountId) || is_numeric($mixedAccountId);
+        
+        if(is_string($mixedAccountId) && !is_numeric($mixedAccountId))
+            return $bApi ? [bx_api_get_msg($mixedAccountId)] : MsgBox($mixedAccountId);
+            
+        if(($oSockets = BxDolSockets::getInstance()) && $oSockets->isEnabled()){
+			$oSockets->sendEvent('sys_account', $mixedAccountId, 'confirmed', '');
+		}
+        
+        bx_alert('account', 'after_email_confirmation', $mixedAccountId, false, ['override_result' => &$sUrl]);
+		
+        return true;
     }
 
     public function serviceGetOptionsResetPasswordRedirect()

+ 0 - 28
template/scripts/BxBaseServiceProfiles.php

@@ -919,34 +919,6 @@ class BxBaseServiceProfiles extends BxDol
         return $sCode;
     }
     
-    public function serviceSetBadges($iContentId, $sBadgesIds, $sModule)
-    {
-        $aSelectedBadges = explode(",", $sBadgesIds);
-        
-        $iPerformerId = bx_get_logged_profile_id();
-        $aCheck = checkActionModule($iPerformerId, 'set badge', 'system', false);
-        if(!isAdmin() && $aCheck[CHECK_ACTION_RESULT] !== CHECK_ACTION_RESULT_ALLOWED)
-            return false;
-        
-        $oBadges = BxDolBadges::getInstance();
-
-        $aBadges = $oBadges->getData(array('type' => 'by_module&object', 'object_id' => $iContentId, 'module' => $sModule));
-
-        foreach ($aBadges as $aBadge) {
-            if (isset($aBadge['badge_id'])){
-                $oBadges->delete($aBadge['badge_id']);
-            }
-        }
-        
-        foreach ($aSelectedBadges as $iSelectedBadge) {
-           $oBadges->add($iSelectedBadge, $iContentId, $sModule);
-        }
-        
-        checkActionModule($iPerformerId, 'set badge', 'system', true); // perform action
-        
-        return true;
-    }
-    
     public function serviceSetMembership($mixedProfileId, $iAclLevelId, $iAclLevelDuration = 0)
     {
         if(!is_array($mixedProfileId))

+ 29 - 1
template/scripts/BxBaseServices.php

@@ -49,6 +49,7 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
             'GetDataSearchApi' => 'BxBaseServices',
             'Cmts' => 'BxBaseServices',
             'GetFooter' => 'BxBaseServices',
+            'SetBadges' => 'BxBaseServices',
 
             'GetPageBlockData' => 'BxBaseServicePages',
             'SetPageBlockData' => 'BxBaseServicePages',
@@ -91,7 +92,6 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
             'UpdateSettings' => 'BxBaseServiceProfiles',
             'Befriend' => 'BxBaseServiceProfiles',
             'ProfileCounters' => 'BxBaseServiceProfiles',
-            'SetBadges' => 'BxBaseServiceProfiles',
             
             'GetChartGrowth' => 'BxBaseChartServices',
             'GetChartStats' => 'BxBaseChartServices',
@@ -1409,6 +1409,34 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
         }
     }
 
+    public function serviceSetBadges($iContentId, $sBadgesIds, $sModule)
+    {
+        $aSelectedBadges = explode(",", $sBadgesIds);
+        
+        $iPerformerId = bx_get_logged_profile_id();
+        $aCheck = checkActionModule($iPerformerId, 'set badge', 'system', false);
+        if(!isAdmin() && $aCheck[CHECK_ACTION_RESULT] !== CHECK_ACTION_RESULT_ALLOWED)
+            return false;
+        
+        $oBadges = BxDolBadges::getInstance();
+
+        $aBadges = $oBadges->getData(array('type' => 'by_module&object', 'object_id' => $iContentId, 'module' => $sModule));
+
+        foreach ($aBadges as $aBadge) {
+            if (isset($aBadge['badge_id'])){
+                $oBadges->delete($aBadge['badge_id']);
+            }
+        }
+        
+        foreach ($aSelectedBadges as $iSelectedBadge) {
+           $oBadges->add($iSelectedBadge, $iContentId, $sModule);
+        }
+        
+        checkActionModule($iPerformerId, 'set badge', 'system', true); // perform action
+        
+        return true;
+    }
+    
     public function serviceGetBadge($aBadge, $bIsCompact = false)
     {
         $sClass = '';