/** * Save user into the database * * @param void * @return boolean */ function save() { $modified_fields = $this->modified_fields; $is_new = $this->isNew(); if ($is_new && $this->getToken() == '') { $this->resetToken(); } // if $save = parent::save(); if ($save && !is_error($save)) { if ($is_new || in_array('email', $modified_fields) || in_array('first_name', $modified_fields) || in_array('last_name', $modified_fields)) { $content = $this->getEmail(); if ($this->getFirstName() || $this->getLastName()) { $content .= "\n\n" . trim($this->getFirstName() . ' ' . $this->getLastName()); } // if search_index_set($this->getId(), 'User', $content); cache_remove_by_pattern('object_assignments_*_rendered'); } // if // Role changed? if (in_array('role_id', $modified_fields)) { clean_user_permissions_cache($this); } // if } // if return $save; }
/** * Remove given user from this project * * @param User $user * @return boolean */ function removeUser($user) { $project_user = ProjectUsers::findById(array('user_id' => $user->getId(), 'project_id' => $this->getId())); if (instance_of($project_user, 'ProjectUser')) { db_begin_work(); $delete = $project_user->delete(); if ($delete && !is_error($delete)) { clean_user_permissions_cache($user); event_trigger('on_project_user_removed', array($this, $user)); db_commit(); return true; } else { db_rollback(); return $delete; } // if } // if return true; }