فهرست منبع

Ticket #4012 - Roles settings show correct modules list.

Alexander 4 سال پیش
والد
کامیت
cd9b7b47a2

+ 5 - 0
modules/base/text/classes/BxBaseModTextModule.php

@@ -1053,6 +1053,11 @@ class BxBaseModTextModule extends BxBaseModGeneralModule implements iBxDolConten
 
         return $aParams;
     }
+
+    public function serviceIsAllowedPostInContext()
+    {
+        return true;
+    }
 }
 
 /** @} */

+ 5 - 0
modules/boonex/convos/classes/BxCnvModule.php

@@ -560,6 +560,11 @@ class BxCnvModule extends BxBaseModTextModule
         $aCollaborators = $this->_oDb->getCollaborators($aDataEntry[$this->_oConfig->CNF['FIELD_ID']]);
         return isset($aCollaborators[$iProfileId]);
     }
+
+    public function serviceIsAllowedPostInContext()
+    {
+        return false;
+    }
 }
 
 /** @} */

+ 1 - 1
studio/template/scripts/BxBaseStudioFormsGroupsRoles.php

@@ -381,7 +381,7 @@ class BxBaseStudioFormsGroupsRoles extends BxDolStudioFormsGroupsRoles
         foreach ($aModules as $sModuleUri => $sModuleName) {
             $oModule = BxDolModule::getInstance($sModuleUri);
             if ($oModule) {
-                if (isset($oModule->_oConfig->CNF['FIELD_ALLOW_VIEW_TO']) && !BxDolRequest::serviceExists($sModuleUri, 'act_as_profile')) {
+                if (bx_srv('system', 'is_module_content', [$sModuleUri]) && !BxDolRequest::serviceExists($sModuleUri, 'act_as_profile')) {
                     $aDefaultActions[$sModuleUri] = [
                         'post' => 1,
                         'edit_any' => $bAdminOrModerator,

+ 7 - 1
template/scripts/BxBaseServices.php

@@ -409,7 +409,13 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
         if(is_string($mixedModule))
             $mixedModule = BxDolModule::getInstance($mixedModule);
 
-        return $mixedModule instanceof BxDolModule && $mixedModule instanceof iBxDolContentInfoService && !($mixedModule instanceof iBxDolProfileService);
+
+        return
+            $mixedModule instanceof BxDolModule &&
+            $mixedModule instanceof iBxDolContentInfoService &&
+            !($mixedModule instanceof iBxDolProfileService) &&
+            BxDolRequest::serviceExists($mixedModule->_aModule, 'is_allowed_post_in_context') &&
+            bx_srv($mixedModule->getName(), 'is_allowed_post_in_context');
     }
 
     /**