/** * Pre-save function to check for conflicting usernames and to make * sure some properties are set * * @param boolean $is_new Whether this is a new user object */ protected function _preSave($is_new) { parent::_preSave($is_new); $compare_user = self::getByUsername($this->getUsername()); if ($compare_user instanceof TBGUser && $compare_user->getID() && $compare_user->getID() != $this->getID()) { throw new Exception(TBGContext::getI18n()->__('This username already exists')); } if ($is_new) { // In case the postsave event isn't processed we automatically enable the user // since we can't be sure that an activation email has been sent out $this->setEnabled(); $this->setActivated(); } if (!$this->_realname) { $this->_realname = $this->_username; } if (!$this->_buddyname) { $this->_buddyname = $this->_username; } if (is_object($this->_timezone)) { $this->_timezone = $this->_timezone->getName(); } if ($is_new && $this->_group_id === null) { $this->setGroup(TBGSettings::getDefaultGroup()); } if ($this->_deleted) { try { if ($this->getGroup() instanceof TBGGroup) { $this->getGroup()->removeMember($this); } } catch (Exception $e) { } $this->_group_id = null; $this->_buddyname = $this->_username; $this->_username = ''; TBGTeamMembersTable::getTable()->clearTeamsByUserID($this->getID()); TBGClientMembersTable::getTable()->clearClientsByUserID($this->getID()); TBGUserScopesTable::getTable()->clearUserScopes($this->getID()); } }
public function getNumberOfMembers() { if ($this->_members !== null) { return count($this->_members); } elseif ($this->_num_members === null) { $this->_num_members = TBGClientMembersTable::getTable()->getNumberOfMembersByClientID($this->getID()); } return $this->_num_members; }
/** * Populates client array when needed * */ protected function _populateClients() { if ($this->clients === null) { $this->clients = array(); TBGLogging::log('Populating user clients'); if ($res = TBGClientMembersTable::getTable()->getClientIDsForUserID($this->getID())) { while ($row = $res->getNextRow()) { $this->clients[$row->get(TBGClientsTable::ID)] = TBGContext::factory()->TBGClient($row->get(TBGClientsTable::ID), $row); } } TBGLogging::log('...done (Populating user clients)'); } }