/** * test du clear en cascade * */ public function testCascadeClear() { CopixCache::write('myval', 'test', 'unittestfile'); $this->assertTrue(CopixCache::exists('myval', 'unittestfile')); CopixCache::write('myval', 'test', 'unittestcascaded1'); $this->assertTrue(CopixCache::exists('myval', 'unittestcascaded1')); CopixCache::write('myval', 'test', 'unittestcascaded2'); $this->assertTrue(CopixCache::exists('myval', 'unittestcascaded2')); CopixCache::write('myval', 'test', 'unittestcascaded3'); $this->assertTrue(CopixCache::exists('myval', 'unittestcascaded3')); CopixCache::clear(null, 'unittestfile'); $this->assertTrue(!CopixCache::exists('myval', 'unittestcascaded1')); $this->assertTrue(!CopixCache::exists('myval', 'unittestcascaded2')); $this->assertTrue(!CopixCache::exists('myval', 'unittestcascaded3')); }
/** * Effectue une demande d'inscription � un groupe pour l'utilisateur courant * * @author Christophe Beyer <*****@*****.**> * @since 2005/11/16 * @param integer $id Id du groupe */ public function doJoin() { if (!Kernel::is_connected()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.nologin'), 'back' => CopixUrl::get('auth|default|login'))); } $dao = CopixDAOFactory::create("groupe"); $kernel_service =& CopixClassesFactory::Create('kernel|kernel'); $minimail_service =& CopixClassesFactory::Create('minimail|minimailservice'); $groupeService =& CopixClassesFactory::Create('groupe|groupeService'); $id = $this->getRequest('id', null); $errors = $oks = array(); $groupe = $dao->getGroupe($id); if (!$groupe) { $errors[] = CopixI18N::get('groupe|groupe.error.noGroup'); } elseif (!$groupe[0]->is_open) { $errors[] = CopixI18N::get('groupe|groupe.error.private'); } $mondroit = $kernel_service->getLevel("CLUB", $id); if ($mondroit) { $errors[] = CopixI18N::get('groupe|groupe.error.alreadyMember'); } if ($errors) { if (!CopixConfig::exists('|can_group_showlist') || CopixConfig::get('|can_group_showlist')) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $errors), 'back' => CopixUrl::get('groupe||getListPublic'))); } else { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $errors), 'back' => CopixUrl::get('||'))); } } else { $kernel_service->setLevel("CLUB", $id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id'), PROFILE_CCV_SHOW); CopixCache::clear(_currentUser()->getExtra('type') . '-' . _currentUser()->getExtra('id'), 'getnodeparents'); CopixCache::clear(_currentUser()->getExtra('type') . '-' . _currentUser()->getExtra('id'), 'getmynodes'); // On r�cup�re le propri�taire, afin de lui envoyer un message $childs = $kernel_service->getNodeChilds("CLUB", $id); $trouve = false; foreach ($childs as $child) { if ($trouve) { continue; } if ($groupeService->canMakeInGroupe('ADMIN', $child["droit"])) { // Propri�taire trouv� ! $trouve = $child; } } //var_dump($trouve); /* while (!$trouve && list(,$child)=each($childs)) { if ($groupeService->canMakeInGroupe('ADMIN',$child["droit"])) // Propri�taire trouv� ! $trouve = $child; } */ if ($trouve) { $userInfo = $kernel_service->getUserInfo($trouve["type"], $trouve["id"]); //print_r2($userInfo); if ($userInfo && $userInfo["user_id"]) { $his_nom = _currentUser()->getExtra('prenom') . " " . _currentUser()->getExtra('nom') . " (" . _currentUser()->getExtra('type') . ")"; $msg_from_login = _currentUser()->getLogin(); $msg_title = CopixI18N::get('groupe|groupe.msgJoin.title', array($groupe[0]->titre)); $format = CopixConfig::get('minimail|default_format'); if ($format == 'dokuwiki' || $format == 'wiki') { $msg_body = CopixI18N::get('groupe|groupe.msgJoin.body', array(CopixUrl::get('groupe||getHomeAdminMembers', array("id" => $id)), $his_nom)); $msg_body = str_replace("\\n", "\n", $msg_body); } else { $msg_body = CopixI18N::get('groupe|groupe.msgJoin.bodyHtml', array(CopixUrl::get('groupe||getHomeAdminMembers', array("id" => $id)), $his_nom)); } //print_r($msg_body); //die(); $msg_from_id = _currentUser()->getId(); $msg_destin = array($userInfo["user_id"] => 1); $send = $minimail_service->sendMinimail($msg_title, $msg_body, $msg_from_id, $msg_destin, $format); if ($send) { $oks[] = CopixI18N::get('groupe|groupe.msgJoin.Ok'); } else { $errors[] = CopixI18N::get('groupe|groupe.error.sendJoin'); } } else { $errors[] = CopixI18N::get('groupe|groupe.error.owner'); } } else { // Pas de proprio, c'est pas normal $errors[] = CopixI18N::get('groupe|groupe.error.noOwner'); } $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', $groupe[0]->titre); // $tpl->assign ('MENU', '<a href="'.CopixUrl::get ('groupe||getListPublic').'">'.CopixI18N::get ('groupe|groupe.annuaire').'</a> :: <a href="'.CopixUrl::get ('groupe||getListMy').'">'.CopixI18N::get ('groupe|groupe.my').'</a>'); $tplHome = new CopixTpl(); $tplHome->assign('groupe', $groupe[0]); $tplHome->assign('errors', $errors); $tplHome->assign('oks', $oks); if (!CopixConfig::exists('|can_group_showlist') || CopixConfig::get('|can_group_showlist')) { $tplHome->assign('can_group_showlist', 1); } else { $tplHome->assign('can_group_showlist', 0); } $result = $tplHome->fetch('dojoin.tpl'); $tpl->assign('MAIN', $result); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); } }
/** * Suppression des droits atribués à des membres sur un blog * * @author Christophe Beyer <*****@*****.**> * @since 2007/06/04 * @param integer $id Id du blog * @param integer $kind Numéro générique de la rubrique (ne pas y toucher) * @param array $membres Les membres à désinscrire (les valeurs sont de type USER_TYPE|USER_ID) */ public function doUnsubscribe() { $id = $this->getRequest('id', null); $kind = $this->getRequest('kind', null); $membres = $this->getRequest('membres', array()); $groupeService =& CopixClassesFactory::Create('groupe|groupeService'); $blogDAO = CopixDAOFactory::create('blog|blog'); $blog = $blogDAO->get($id); $errors = array(); if (!$blog || !$kind) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.param'), 'back' => $blog ? CopixUrl::get('|', array('blog' => $blog->url_blog)) : CopixUrl::get('||'))); } if (!BlogAuth::canMakeInBlog('ADMIN_DROITS', $blog)) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.cannotManageBlog'), 'back' => $blog ? CopixUrl::get('|', array('blog' => $blog->url_blog)) : CopixUrl::get('||'))); } if (!$errors) { foreach ($membres as $membre) { list($user_type, $user_id) = explode("|", $membre); if ($user_type && $user_id) { //print ("user_type=$user_type / user_id=$user_id"); Kernel::setLevel("MOD_BLOG", $id, $user_type, $user_id, 0); CopixCache::clear($user_type . '-' . $user_id, 'getnodeparents'); CopixCache::clear($user_type . '-' . $user_id, 'getmynodes'); } } $back = CopixUrl::get('blog|admin|showBlog', array("id_blog" => $id, 'kind' => $kind)); return new CopixActionReturn(COPIX_AR_REDIRECT, $back); } }
/** * Méthode qui efface le cache de la zone * @param array $pParams les paramètres de contexte pour la zone. * @return boolean si tout s'est bien passé * @access private */ protected function _clear($pParams) { $this->_params = $pParams; if ($this->_useCache) { $module = CopixContext::get(); CopixCache::clear($this->_makeId(), 'zones|' . $module . get_class($this)); } return true; }