Пример #1
0
 /**
  * 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());
 }
Пример #3
0
 /**
  * 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();
 }