$joins .= XDB::format("LEFT JOIN group_members AS gpm ON (gpm.uid = a.uid AND gpm.asso_id = {?})\n", $globals->asso('id'));
$fields[] = 'gpm.perms AS group_perms';
$fields[] = 'gpm.comm AS group_comm';
+ $fields[] = 'gpm.position AS group_position';
}
if (count($fields) > 0) {
$fields = ', ' . implode(', ', $fields);
IF (ab.alias IS NULL, NULL, CONCAT(ab.alias, \'@' . $globals->mail->domain2 . '\')) AS bestalias_alternate,
a.email, a.full_name, a.directory_name, a.display_name, a.sex = \'female\' AS gender,
IF(a.state = \'active\', CONCAT(at.perms, \',\', IF(a.user_perms IS NULL, \'\', a.user_perms)), \'\') AS perms,
- a.user_perms, a.email_format, a.is_admin, a.state, a.type, a.skin,
+ a.user_perms, a.email_format, a.is_admin, a.state, a.type, at.description AS type_description, a.skin,
FIND_IN_SET(\'watch\', a.flags) AS watch, a.comment,
a.weak_password IS NOT NULL AS weak_access, g.g_account_name IS NOT NULL AS googleapps,
a.token IS NOT NULL AS token_access, a.token, a.last_version,
$this->perm_flags = self::makePerms($this->perms, $this->is_admin);
}
+ public function setPerms($perms)
+ {
+ $this->perms = $perms;
+ $this->perm_flags = null;
+ }
+
// We do not want to store the password in the object.
// So, fetch it 'on demand'
public function password()
return $this->profile()->promo();
}
+ public function category()
+ {
+ $promo = $this->promo();
+ if (!empty($promo)) {
+ return $promo;
+ } else {
+ return $this->type_description;
+ }
+ }
+
public function firstName()
{
if (!$this->hasProfile()) {
/** Return the main profile attached with this account if any.
*/
- public function profile($forceFetch = false)
+ public function profile($forceFetch = false, $fields = 0x0000, $visibility = null)
{
if (!$this->_profile_fetched || $forceFetch) {
$this->_profile_fetched = true;
- $this->_profile = Profile::get($this);
+ $this->_profile = Profile::get($this, $fields, $visibility);
}
return $this->_profile;
}
$result = array();
foreach ($this->groups as $id=>$data) {
if ($institutions) {
- if ($data['cat'] != 'GroupesX' && $data['cat'] != 'Institutions') {
+ if ($data['cat'] != Group::CAT_GROUPESX && $data['cat'] != Group::CAT_INSTITUTIONS) {
continue;
}
}
'forum_innd', 'forum_profiles', 'forum_subs',
'group_announces_read', 'group_members',
'group_member_sub_requests', 'reminder', 'requests',
- 'requests_hidden');
+ 'requests_hidden', 'aliases');
foreach ($tables as $t) {
XDB::execute('DELETE FROM ' . $t . '
WHERE uid = {?}',
}
}
- $mmlist = new MMList($this);
+ $mmlist = new MMList(S::user());
$mmlist->kill($this->hruid, $clearAll);
}
XDB::execute('UPDATE log_last_sessions
SET id = {?}
WHERE uid = {?}',
- $newuser->id());
+ $lastSession, $newuser->id());
XDB::execute('DELETE FROM accounts
WHERE uid = {?}',
$this->id());