/** * 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); } }
/** * D�sinscription de l'utilisateur courant d'un groupe. Renvoie sur la page demandant confirmation avant de supprimer, ou proc�de � la desinscription (si la confirmation a d�j� eu lieu). * * @author Christophe Beyer <*****@*****.**> * @since 2007/05/30 * @param integer $id Id du groupe * @param integer $confirm 1 si on revient apr�s confirmation, nul si on pose la question */ public function doUnsubscribeHimself() { $dao = CopixDAOFactory::create("groupe"); $kernel_service =& CopixClassesFactory::Create('kernel|kernel'); $groupeService =& CopixClassesFactory::Create('groupe|groupeService'); $errors = array(); $id = $this->getRequest('id', null); $confirm = $this->getRequest('confirm', 0); $groupe = $dao->getGroupe($id); if (!$groupe) { $errors[] = CopixI18N::get('groupe|groupe.error.noGroup'); } $mondroit = $kernel_service->getLevel("CLUB", $id); if (!$groupeService->canMakeInGroupe('UNSUBSCRIBE_HIMSELF', $mondroit)) { $errors[] = CopixI18N::get('kernel|kernel.error.noRights'); } if ($errors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $errors), 'back' => CopixUrl::get('groupe||'))); } else { if ($confirm) { Kernel::setLevel("CLUB", $id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id'), 0); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('groupe||getListMy')); } else { return CopixActionGroup::process('genericTools|Messages::getConfirm', array('title' => $groupe[0]->titre, 'message' => CopixI18N::get('groupe|groupe.conf.UnsubscribeHimself'), 'confirm' => CopixUrl::get('groupe||doUnsubscribeHimself', array('id' => $id, 'confirm' => 1)), 'cancel' => CopixUrl::get('groupe||getHome', array('id' => $id)))); } } }