<?php
/***************************************************************************
- * Copyright (C) 2003-2010 Polytechnique.org *
+ * Copyright (C) 2003-2011 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
class User extends PlUser
{
- const PERM_GROUPS = 'groups';
- const PERM_MAIL = 'mail';
+ const PERM_API_USER_READONLY = 'api_user_readonly';
const PERM_DIRECTORY_AX = 'directory_ax';
const PERM_DIRECTORY_PRIVATE = 'directory_private';
const PERM_EDIT_DIRECTORY = 'edit_directory';
const PERM_FORUMS = 'forums';
+ const PERM_GROUPS = 'groups';
const PERM_LISTS = 'lists';
+ const PERM_MAIL = 'mail';
const PERM_PAYMENT = 'payment';
private $_profile_fetched = false;
$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);
}
}
+ public function groupCount()
+ {
+ return XDB::fetchOneCell('SELECT COUNT(DISTINCT(asso_id))
+ FROM group_members
+ WHERE uid = {?}',
+ $this->id());
+ }
+
+ public function inGroup($asso_id)
+ {
+ $res = XDB::fetchOneCell('SELECT COUNT(*)
+ FROM group_members
+ WHERE uid = {?} AND asso_id = {?}',
+ $this->id(), $asso_id);
+ return ($res > 0);
+ }
+
/**
* Clears a user.
* *always deletes in: account_lost_passwords, register_marketing,
'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);
}