Просмотр исходного кода

Ticket #4444 - Add ability to block users in groups. Groups.

AntonLV 2 лет назад
Родитель
Сommit
80a1108367

+ 80 - 0
modules/base/groups/classes/BxBaseModGroupsGridBans.php

@@ -0,0 +1,80 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    BaseGroups Base classes for groups modules
+ * @ingroup     UnaModules
+ * 
+ * @{
+ */
+
+class BxBaseModGroupsGridBans extends BxDolGridConnections
+{
+    protected $_oModule;
+    protected $_sContentModule;
+
+    protected $_iGroupProfileId;
+    protected $_aContentInfo = [];
+
+    protected $_bManageMembers;
+
+    public function __construct ($aOptions, $oTemplate = false)
+    {
+        $this->_oModule = BxDolModule::getInstance($this->_sContentModule);
+
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        $this->_sObjectConnections = 'sys_profiles_bans';
+
+        parent::__construct ($aOptions, $oTemplate);
+        if(!$this->_bInit) 
+            return;
+
+        $this->_iGroupProfileId = $this->_oProfile->id();
+
+        $this->_aContentInfo = $this->_oModule->_oDb->getContentInfoById($this->_oProfile->getContentId());
+        if($this->_oModule->checkAllowedEdit($this->_aContentInfo) === CHECK_ACTION_RESULT_ALLOWED || $this->_iGroupProfileId == bx_get_logged_profile_id())
+            $this->_bOwner = true;
+
+        $this->_bManageMembers = $this->_oModule->checkAllowedManageFans($this->_iGroupProfileId) === CHECK_ACTION_RESULT_ALLOWED || $this->_oModule->checkAllowedManageAdmins($this->_iGroupProfileId) === CHECK_ACTION_RESULT_ALLOWED;
+
+        $aSQLParts = $this->_oConnection->getConnectedContentAsSQLParts('p', 'id', $this->_iGroupProfileId, $this->_bOwner ? false : true);
+        $this->addMarkers(array(
+            'profile_id' => $this->_iGroupProfileId,
+            'join_connections' => $aSQLParts['join'],
+            'content_module' => $this->_sContentModule,
+        ));
+    }
+
+    protected function _getCellAdded ($mixedValue, $sKey, $aField, $aRow)
+    {
+        return parent::_getCellDefault(bx_time_js($mixedValue), $sKey, $aField, $aRow);
+    }
+
+    protected function _getActionDelete ($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
+    {
+        if (!$this->_bManageMembers)
+            return $this->_bIsApi ? [] : '';
+
+        if (isset($aRow[$this->_aOptions['field_id']]))
+            $a['attr']['bx_grid_action_data'] = $aRow[$this->_aOptions['field_id']] . ':' . $this->_iGroupProfileId;
+
+        return parent::_getActionDelete($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
+    }
+
+    protected function _delete ($mixedId)
+    {
+        list($iProfileId, $iContextId) = $this->__prepareIds($mixedId);
+
+        if($this->_oConnection->isConnected($iContextId, $iProfileId))
+            $a = $this->_oConnection->removeConnection($iContextId, $iProfileId);
+
+        if(isset($a['err']) && $a['err'])
+            return false;
+
+        return true;
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/groups/classes/BxGroupsGridBans.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Groups Groups
+ * @ingroup     UnaModules
+ * 
+ * @{
+ */
+
+class BxGroupsGridBans extends BxBaseModGroupsGridBans
+{
+    public function __construct ($aOptions, $oTemplate = false)
+    {
+        $this->_sContentModule = 'bx_groups';
+        parent::__construct ($aOptions, $oTemplate);
+    }
+}
+
+/** @} */