BxBaseModGroupsFormsEntryHelper.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. /**
  12. * Group profile forms functions
  13. */
  14. class BxBaseModGroupsFormsEntryHelper extends BxBaseModProfileFormsEntryHelper
  15. {
  16. public function __construct($oModule)
  17. {
  18. parent::__construct($oModule);
  19. }
  20. protected function _processPermissionsCheckForViewDataForm ($aContentInfo, $oProfile)
  21. {
  22. $sMsg = parent::_processPermissionsCheckForViewDataForm ($aContentInfo, $oProfile);
  23. $oPrivacy = BxDolPrivacy::getObjectInstance($this->_oModule->_oConfig->CNF['OBJECT_PRIVACY_VIEW']);
  24. if ($sMsg && $oPrivacy->isPartiallyVisible($aContentInfo[$this->_oModule->_oConfig->CNF['FIELD_ALLOW_VIEW_TO']]))
  25. return '';
  26. return $sMsg;
  27. }
  28. public function onDataAddAfter ($iAccountId, $iContentId)
  29. {
  30. if ($s = parent::onDataAddAfter($iAccountId, $iContentId))
  31. return $s;
  32. if (!($oGroupProfile = BxDolProfile::getInstanceByContentAndType($iContentId, $this->_oModule->_oConfig->getName())))
  33. return '';
  34. // insert invited members, so they will join without confirmation
  35. $aInitialProfiles = bx_get('initial_members');
  36. foreach ($aInitialProfiles as $iProfileId) {
  37. if (!($oProfile = BxDolProfile::getInstance($iProfileId)))
  38. continue;
  39. $this->_oModule->serviceAddMutualConnection ($oGroupProfile->id(), $oProfile->id(), true);
  40. }
  41. return '';
  42. }
  43. public function onDataDeleteAfter ($iContentId, $aContentInfo, $oProfile)
  44. {
  45. $CNF = &$this->_oModule->_oConfig->CNF;
  46. $oGroupProfile = BxDolProfile::getInstanceByContentAndType($iContentId, $this->_oModule->_oConfig->getName());
  47. if ($oGroupProfile)
  48. $this->_oModule->_oDb->deleteAdminsByGroupId($oGroupProfile->id());
  49. if (isset($CNF['OBJECT_CONNECTIONS']) && $oGroupProfile && ($oConnection = BxDolConnection::getObjectInstance($CNF['OBJECT_CONNECTIONS'])))
  50. $oConnection->onDeleteInitiatorAndContent($oGroupProfile->id());
  51. return '';
  52. }
  53. }
  54. /** @} */