public function setOriginal($filename)
{
+ if ($this->isGroup()) {
+ // Until Group avatars are handled just like profile avatars.
+ return $this->getGroup()->setOriginal($filename);
+ }
+
$imagefile = new ImageFile($this->id, Avatar::path($filename));
$avatar = new Avatar();
}
try {
- return User_group::listFind('id', $ids);
+ return User_group::multiGet('id', $ids);
} catch (NoResultException $e) {
return null; // throw exception when we handle it everywhere
}
{
$subs = Subscription::getSubscribedIDs($this->id, $offset, $limit);
try {
- $profiles = Profile::listFind('id', $subs);
+ $profiles = Profile::multiGet('id', $subs);
} catch (NoResultException $e) {
return $e->obj;
}
{
$subs = Subscription::getSubscriberIDs($this->id, $offset, $limit);
try {
- $profiles = Profile::listFind('id', $subs);
+ $profiles = Profile::multiGet('id', $subs);
} catch (NoResultException $e) {
return $e->obj;
}
common_debug("Updating User ({$this->id}) nickname from {$dataObject->nickname} to {$this->nickname}");
$origuser = clone($local);
$local->nickname = $this->nickname;
- $result = $local->updateKeys($origuser);
- if ($result === false) {
- common_log_db_error($local, 'UPDATE', __FILE__);
- // TRANS: Server error thrown when user profile settings could not be updated.
- throw new ServerException(_('Could not update user nickname.'));
- }
+ // updateWithKeys throws exception on failure.
+ $local->updateWithKeys($origuser);
// Clear the site owner, in case nickname changed
if ($local->hasRole(Profile_role::OWNER)) {
{
$this->_deleteNotices();
$this->_deleteSubscriptions();
- $this->_deleteMessages();
$this->_deleteTags();
$this->_deleteBlocks();
$this->_deleteAttentions();
$self->delete();
}
- function _deleteMessages()
- {
- $msg = new Message();
- $msg->from_profile = $this->id;
- $msg->delete();
-
- $msg = new Message();
- $msg->to_profile = $this->id;
- $msg->delete();
- }
-
function _deleteTags()
{
$tag = new Profile_tag();
* Clients use some extra profile info in the atom stream.
* This gives it to them.
*
- * @param User $cur Current user
+ * @param Profile $scoped The currently logged in/scoped profile
*
* @return array representation of <statusnet:profile_info> element or null
*/
- function profileInfo($cur)
+ function profileInfo(Profile $scoped=null)
{
$profileInfoAttr = array('local_id' => $this->id);
- if ($cur != null) {
+ if ($scoped instanceof Profile) {
// Whether the current user is a subscribed to this profile
- $profileInfoAttr['following'] = $cur->isSubscribed($this) ? 'true' : 'false';
+ $profileInfoAttr['following'] = $scoped->isSubscribed($this) ? 'true' : 'false';
// Whether the current user is has blocked this profile
- $profileInfoAttr['blocking'] = $cur->hasBlocked($this) ? 'true' : 'false';
+ $profileInfoAttr['blocking'] = $scoped->hasBlocked($this) ? 'true' : 'false';
}
return array('statusnet:profile_info', $profileInfoAttr, null);
$object->id = $this->getUri();
$object->title = $this->getBestName();
$object->link = $this->getUrl();
+ $object->summary = $this->getDescription();
try {
$avatar = Avatar::getUploaded($this);
return $this->nickname;
}
+ public function getDescription()
+ {
+ return $this->bio;
+ }
+
/**
* Returns the best URI for a profile. Plugins may override.
*
return $this->getUser()->shortenLinks($text, $always);
}
+ public function delPref($namespace, $topic) {
+ return Profile_prefs::setData($this, $namespace, $topic, null);
+ }
+
public function getPref($namespace, $topic, $default=null) {
- return Profile_prefs::getData($this, $namespace, $topic, $default);
+ // If you want an exception to be thrown, call Profile_prefs::getData directly
+ try {
+ return Profile_prefs::getData($this, $namespace, $topic, $default);
+ } catch (NoResultException $e) {
+ return null;
+ }
}
public function setPref($namespace, $topic, $data) {