BxBaseModGroupsGridBans.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup BaseGroups Base classes for groups modules
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxBaseModGroupsGridBans extends BxDolGridConnections
  12. {
  13. protected $_oModule;
  14. protected $_sContentModule;
  15. protected $_iGroupProfileId;
  16. protected $_aContentInfo = [];
  17. protected $_bManageMembers;
  18. public function __construct ($aOptions, $oTemplate = false)
  19. {
  20. $this->_oModule = BxDolModule::getInstance($this->_sContentModule);
  21. $this->_sObjectConnections = 'sys_profiles_bans';
  22. parent::__construct ($aOptions, $oTemplate);
  23. if(!$this->_bInit)
  24. return;
  25. $this->_iGroupProfileId = $this->_oProfile->id();
  26. $this->_aContentInfo = $this->_oModule->_oDb->getContentInfoById($this->_oProfile->getContentId());
  27. if($this->_oModule->checkAllowedEdit($this->_aContentInfo) === CHECK_ACTION_RESULT_ALLOWED || $this->_iGroupProfileId == bx_get_logged_profile_id())
  28. $this->_bOwner = true;
  29. $this->_bManageMembers = $this->_oModule->checkAllowedManageFans($this->_iGroupProfileId) === CHECK_ACTION_RESULT_ALLOWED || $this->_oModule->checkAllowedManageAdmins($this->_iGroupProfileId) === CHECK_ACTION_RESULT_ALLOWED;
  30. $aSQLParts = $this->_oConnection->getConnectedContentAsSQLParts('p', 'id', $this->_iGroupProfileId);
  31. $this->addMarkers(array(
  32. 'profile_id' => $this->_iGroupProfileId,
  33. 'join_connections' => $aSQLParts['join'],
  34. 'content_module' => $this->_sContentModule,
  35. ));
  36. }
  37. public function getCode ($isDisplayHeader = true)
  38. {
  39. if(!$this->_bManageMembers)
  40. return '';
  41. return parent::getCode($isDisplayHeader);
  42. }
  43. protected function _getCellAdded ($mixedValue, $sKey, $aField, $aRow)
  44. {
  45. return parent::_getCellDefault(bx_time_js($mixedValue), $sKey, $aField, $aRow);
  46. }
  47. protected function _getActionDelete ($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array())
  48. {
  49. if (!$this->_bManageMembers)
  50. return $this->_bIsApi ? [] : '';
  51. if (isset($aRow[$this->_aOptions['field_id']]))
  52. $a['attr']['bx_grid_action_data'] = $aRow[$this->_aOptions['field_id']] . ':' . $this->_iGroupProfileId;
  53. return parent::_getActionDelete($sType, $sKey, $a, $isSmall, $isDisabled, $aRow);
  54. }
  55. protected function _delete ($mixedId)
  56. {
  57. list($iProfileId, $iContextId) = $this->__prepareIds($mixedId);
  58. if($this->_oConnection->isConnected($iContextId, $iProfileId))
  59. $a = $this->_oConnection->removeConnection($iContextId, $iProfileId);
  60. if(isset($a['err']) && $a['err'])
  61. return false;
  62. return true;
  63. }
  64. }
  65. /** @} */