/** * After Save Addons */ protected function afterSave() { // Try To Delete Search Model HSearch::getInstance()->deleteModel($this); // Newer index a hidden workspace if ($this->visibility != self::VISIBILITY_NONE) { HSearch::getInstance()->addModel($this); } $userId = $this->created_by; if ($this->isNewRecord) { // Create new wall record for this space $wall = new Wall(); $wall->object_model = 'Space'; $wall->object_id = $this->id; $wall->save(); $this->wall_id = $wall->id; $this->wall = $wall; Space::model()->updateByPk($this->id, array('wall_id' => $wall->id)); // Auto add creator as admin $membership = new SpaceMembership(); $membership->space_id = $this->id; $membership->user_id = $userId; $membership->status = SpaceMembership::STATUS_MEMBER; $membership->invite_role = 1; $membership->admin_role = 1; $membership->share_role = 1; $membership->save(); $activity = new Activity(); $activity->content->created_by = $userId; $activity->content->space_id = $this->id; $activity->content->user_id = $userId; $activity->content->visibility = Content::VISIBILITY_PUBLIC; $activity->created_by = $userId; $activity->type = "ActivitySpaceCreated"; $activity->save(); $activity->fire(); } Yii::app()->cache->delete('userSpaces_' . $userId); parent::afterSave(); }
/** * Remove Membership * * @param $userId UserId of User to Remove */ public function removeMember($userId = "") { if ($userId == "") { $userId = Yii::app()->user->id; } $user = User::model()->findByPk($userId); $membership = $this->getMembership($userId); if ($this->isRoomOwner($userId)) { return false; } if ($membership == null) { return true; } // If was member, create a activity for that if ($membership->status == RoomMembership::STATUS_MEMBER) { $activity = new Activity(); $activity->content->room_id = $this->getOwner()->id; $activity->content->visibility = Content::VISIBILITY_PRIVATE; $activity->type = "ActivityRoomMemberRemoved"; $activity->created_by = $userId; $activity->save(); $activity->fire(); } // Was invited, but declined the request if ($membership->status == RoomMembership::STATUS_INVITED) { RoomInviteDeclinedNotification::fire($membership->originator_user_id, $user, $this->getOwner()); } foreach (RoomMembership::model()->findAllByAttributes(array('user_id' => $userId, 'room_id' => $this->getOwner()->id)) as $membership) { $membership->delete(); } // Cleanup Notifications RoomApprovalRequestNotification::remove($userId, $this->getOwner()); RoomInviteNotification::remove($userId, $this->getOwner()); RoomApprovalRequestNotification::remove($userId, $this->getOwner()); }
/** * After Save Addons */ protected function afterSave() { if ($this->status != self::VISIBILITY_NONE) { Yii::app()->search->update($this); } else { Yii::app()->search->delete($this); } $userId = $this->created_by; if ($this->isNewRecord) { // Create new wall record for this room $wall = new Wall(); $wall->object_model = 'Room'; $wall->object_id = $this->id; $wall->save(); $this->wall_id = $wall->id; $this->wall = $wall; Room::model()->updateByPk($this->id, array('wall_id' => $wall->id)); // Auto add creator as admin $membership = new RoomMembership(); $membership->room_id = $this->id; $membership->user_id = $userId; $membership->status = RoomMembership::STATUS_MEMBER; $membership->invite_role = 1; $membership->admin_role = 1; $membership->share_role = 1; $membership->save(); $activity = new Activity(); $activity->content->created_by = $userId; $activity->content->room_id = $this->id; $activity->content->user_id = $userId; $activity->content->visibility = Content::VISIBILITY_PUBLIC; $activity->created_by = $userId; $activity->type = "ActivityRoomCreated"; $activity->save(); $activity->fire(); } Yii::app()->cache->delete('userRooms_' . $userId); parent::afterSave(); }