/** * * @return \Dashbird\Model\Entities\User */ public function GetUser() { return \Dashbird\Library\Services\UserService::Instance()->GetUser(); }
public function SetPostShares($UserIds) { \Pvik\Database\SQL\Manager::GetInstance()->DeleteWithParameters('DELETE FROM PostShares WHERE PostShares.PostId = %s', array($this->PostId)); // CAUTION: PostShares in the cache maybe still have a reference to this object // manually delete cache posts $CachePostShares = \Pvik\Database\Generic\ModelTable::Get('PostShares')->GetCache()->GetAllCacheInstances(); foreach ($CachePostShares as $CachePostShare) { /* @var $CachePostShare PostShare */ if ($CachePostShare->PostId == $this->PostId) { \Pvik\Database\Generic\ModelTable::Get('PostShares')->GetCache()->Delete($CachePostShare); } } // clear all reference keys $this->SetFieldData('PostShares', null); // validate userIds $UserShares = \Dashbird\Library\Services\UserService::Instance()->GetUser()->UserShares; $FilteredUserIds = array(); foreach ($UserIds as $UserId) { if ($UserShares->HasValue('ConnectedUserId', $UserId) && !in_array($UserId, $FilteredUserIds)) { $FilteredUserIds[] = $UserId; } } $UserIds = $FilteredUserIds; $UserIds[] = $this->UserId; // add him self to shared foreach ($UserIds as $UserId) { $PostShare = new \Dashbird\Model\Entities\PostShare(); $PostShare->PostId = $this->PostId; $PostShare->UserId = $UserId; $PostShare->Insert(); } }