X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fxnetgrp.php;h=a1a37e2c8a2f7febce9c96480d383081aa4ecd95;hb=6cce7840e69bc0b6647e1bc5ea3437a925cd63a0;hp=4b5e9f6055c8413689a96237ddf9c288be8aca91;hpb=e50f74d50fb29c50325120aec408611c9407c6d9;p=platal.git diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index 4b5e9f6..a1a37e2 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -40,15 +40,15 @@ class XnetGrpModule extends PLModule '%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, 'groups'), '%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, 'groups'), '%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'), - '%grp/member/new/ajax' => $this->make_hook('admin_member_new_ajax', AUTH_MDP, 'user', NO_AUTH), + '%grp/member/new/ajax' => $this->make_hook('admin_member_new_ajax', AUTH_MDP, 'groups', NO_AUTH), '%grp/member/del' => $this->make_hook('admin_member_del', AUTH_MDP, 'groupadmin'), '%grp/member/suggest' => $this->make_hook('admin_member_suggest', AUTH_MDP, 'groupadmin'), @@ -374,7 +374,7 @@ class XnetGrpModule extends PLModule 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); @@ -671,7 +671,7 @@ class XnetGrpModule extends PLModule $append = "\n" . "-- \n" . "Ce message a été envoyé suite à la demande d'inscription de\n" - . S::user()->fullName() . ' (X' . S::v('promo') . ")\n" + . S::user()->fullName(true) . "\n" . "Via le site www.polytechnique.net. Tu peux choisir de valider ou\n" . "de refuser sa demande d'inscription depuis la page :\n" . "http://www.polytechnique.net/" . $globals->asso("diminutif") . "/subscribe/" . S::user()->login() . "\n" @@ -970,10 +970,10 @@ class XnetGrpModule extends PLModule list($lastname, $firstname) = str_replace(array('-', ' ', "'"), '%', array(Env::t('nom'), Env::t('prenom'))); $cond = new PFC_And(new PFC_Not(new UFC_Registered())); if (!empty($lastname)) { - $cond->addChild(new UFC_Name(Profile::LASTNAME, $lastname, UFC_Name::CONTAINS)); + $cond->addChild(new UFC_NameTokens($lastname, array(), false, false, Profile::LASTNAME)); } if (!empty($firstname)) { - $cond->addChild(new UFC_Name(Profile::FIRSTNAME, $firstname, UFC_Name::CONTAINS)); + $cond->addChild(new UFC_NameTokens($firstname, array(), false, false, Profile::FIRSTNAME)); } if (Env::t('promo')) { $cond->addChild(new UFC_Promo('=', UserFilter::DISPLAY, Env::t('promo'))); @@ -1278,30 +1278,24 @@ class XnetGrpModule extends PLModule } 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));