'%grp/directory/unact' => $this->make_hook('non_active', AUTH_MDP, 'groupadmin'),
'%grp/trombi' => $this->make_hook('trombi', AUTH_MDP, 'groupannu'),
'%grp/geoloc' => $this->make_hook('geoloc', AUTH_MDP, 'groupannu'),
- '%grp/subscribe' => $this->make_hook('subscribe', AUTH_MDP),
+ '%grp/subscribe' => $this->make_hook('subscribe', AUTH_MDP, 'user'),
'%grp/subscribe/valid' => $this->make_hook('subscribe_valid', AUTH_MDP, 'groupadmin'),
'%grp/unsubscribe' => $this->make_hook('unsubscribe', AUTH_MDP, 'groupmember'),
- '%grp/change_rights' => $this->make_hook('change_rights', AUTH_MDP),
+ '%grp/change_rights' => $this->make_hook('change_rights', AUTH_MDP, 'user'),
'%grp/admin/annuaire' => $this->make_hook('admin_annuaire', AUTH_MDP, 'groupadmin'),
'%grp/member' => $this->make_hook('admin_member', AUTH_MDP, 'groupadmin'),
'%grp/member/new' => $this->make_hook('admin_member_new', AUTH_MDP, 'groupadmin'),
if (is_null($filename)) {
$filename = $globals->asso('diminutif') . '.csv';
}
- $users = $globals->asso()->getMembersFilter(null, new UFO_Name('directory_name'))->getUsers();
+ $users = $globals->asso()->getMembersFilter(null, new UFO_Name())->getUsers();
pl_cached_content_headers('text/x-csv', 1);
$page->changeTpl('xnetgrp/annuaire-csv.tpl', NO_SKIN);
$page->assign('users', $users);
}
if ($globals->asso('has_nl')) {
+ $nl = NewsLetter::forGroup($globals->asso('shortname'));
// Updates group's newsletter subscription.
if (Post::i('newsletter') == 1) {
- XDB::execute('INSERT IGNORE INTO newsletter_ins (uid, nlid)
- SELECT {?}, id
- FROM newsletters
- WHERE group_id = {?}',
- $user->id(), $globals->asso('id'));
+ $nl->subscribe($user);
} else {
- XDB::execute('DELETE ni
- FROM newsletter_ins AS ni
- INNER JOIN newsletters AS n ON (n.id = ni.nlid)
- WHERE ni.uid = {?} AND n.group_id = {?}',
- $user->id(), $globals->asso('id'));
+ $nl->unsubscribe(null, $user->id);
}
}
}
$res = XDB::rawFetchAllAssoc('SHOW COLUMNS FROM group_members LIKE \'position\'');
$positions = str_replace(array('enum(', ')', '\''), '', $res[0]['Type']);
- $nl_registered = XDB::fetchOneCell('SELECT COUNT(ni.uid)
- FROM newsletter_ins AS ni
- INNER JOIN newsletters AS n ON (n.id = ni.nlid)
- WHERE ni.uid = {?} AND n.group_id = {?}',
- $user->id(), $globals->asso('id'));
+ if ($globals->asso('has_nl')) {
+ $nl = NewsLetter::forGroup($globals->asso('shortname'));
+ $nl_registered = $nl->subscriptionState($user);
+ } else {
+ $nl_registered = false;
+ }
$page->assign('user', $user);
$page->assign('suggest', $this->suggest($user));