/**
  * 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))));
         }
     }
 }