Ejemplo n.º 1
0
    /**
     * Retorna la informació d'una prioritat sol·licitada.
     * 
     * @param array $args Array amb els paràmetres de la funció
     *
     * ### Paràmetres de l'array $args:
     * * integer **priId** Identificador de prioritat
     * 
     * @return array Conté la informació de la prioritat sol·licitada
     */
    public function getPrioritat($args) {
        if (!SecurityUtil::checkPermission('Cataleg::', "::", ACCESS_READ)) {
            return false;
        }

        $priId = isset($args['priId']) ? $args['priId'] : null;
        //Comprovem que el paràmetre hagi arribat correctament
        $registre = array();
        if (isset($priId) && is_numeric($priId)) {
            $registre = DBUtil::selectObject('cataleg_prioritats', 'priId=' . $priId);
            $eix = ModUtil::apifunc('Cataleg', 'user', 'getEix', array('eixId' => $registre['eixId']));
            $registre['eix'] = $eix;
            $cataleg = ModUtil::apifunc('Cataleg', 'user', 'getCataleg', array('catId' => $eix['catId']));
            $registre['cataleg'] = $cataleg;
        }
        //Retormem una matriu amb la informació del cataleg, l'eix i la prioritat
        return $registre;
    }
Ejemplo n.º 2
0
    public function referenced($args) {
        // Security check
        if (!SecurityUtil::checkPermission('IWtimeframes::', "::", ACCESS_ADMIN)) {
            return LogUtil::registerError($this->__('Not authorized to manage timeFrames.'), 403);
        }
        if (ModUtil::apifunc('IWtimeframes', 'admin', 'installed', 'IWbookings')) {
            $mdid = FormUtil::getPassedValue('mdid', isset($args['mdid']) ? $args['mdid'] : null, 'POST');
            $tablename = 'IWbookings_spaces';
            $where = 'mdid = ' . $mdid;
            return (DBUtil::selectObjectCount($tablename, $where) > 0);
            //$n = DBUtil::selectObjectCount($tablename, $where);
        } else {
            return false;
            //$n = 0;
        }
        /* $modid = ModUtil::getIdFromName('IWbookings');
        $modinfo = ModUtil::getInfo($modid);

        if ($modinfo['state'] > 1) {
            $mdid = FormUtil::getPassedValue('mdid', isset($args['mdid']) ? $args['mdid'] : null, 'POST');
            $tablename = 'IWbookings_spaces';
            $where = 'mdid = ' . $mdid;
            return (DBUtil::selectObjectCount($tablename, $where) > 0);
        } else {
            return false;
        }
         * 
         */
    }
Ejemplo n.º 3
0
    /**
     * Crea una nova activitat o actualitza les dadea d'una existent
     * 
     * > Si existeix actId s'actualitza el contingut de la fitxa d'activitat corresponent.\n
     * > Si no existeix actId, la fitxa correspon a una nova activitat, es crea.\n
     * > En el moment de crear-la/actualitzar-la es pot decidir si es desa com a esborrany o 
     * > s'envia per a la seva validació (publicació).
     * 
     * ### Paràmetres rebuts per POST:
     * * integer **catId** identificador de la prioritat
     * * integer **actId** identificador de l'activitat
     * * integer **uniResp** identificador de la unitat responsable de l'activitat
     * * integer **prioritat** identificador de la prioritat que contempla l'activitat
     * * Els camps de la taula cataleg_activitats
     * * Els camps de la taula cataleg_contactes,
     * * Els camps de la taula cataleg_activitatsZona 
     * * Els camps de la taula centresActivitat
     * 
     * ### Paràmetres rebuts per GET:
     * * boolean **show** indica si després de desar les dades es retorna a la vista d'activitat
     * 
     * @return void
     */
    public function save() {
        // Verificació de seguretat
        $this->throwForbiddenUnless(SecurityUtil::checkPermission('Cataleg::', '::', ACCESS_ADD));

        $item['catId'] = FormUtil::getPassedValue('catId', null, 'POST');     // Id del catàleg
        $item['actId'] = FormUtil::getPassedValue('actId', null, 'POST');     // Id de l'activitat (si existeix)
        $item['uniId'] = FormUtil::getPassedValue('uniResp', null, 'POST');   // id de la unitat responsable de l'activitat
        $item['priId'] = FormUtil::getPassedValue('prioritat', null, 'POST'); //id de la prioritat en la que s'emmarca l'activitat
        $back = FormUtil::getPassedValue('back', null, 'POST');

        if ($item['actId'])
            $haveAccess = ModUtil::apiFunc($this->name, 'user', 'haveAccess', array('accio' => 'save', 'id' => $item['actId']));
        else
            $haveAccess = ModUtil::apiFunc($this->name, 'user', 'haveAccess', array('accio' => 'new', 'id' => $item['uniId']));
        // $haveAccess és true si l'usuari té accés a modificar o crear activitats del catàleg i la unitat
        if ($haveAccess && !is_null($item['priId'])) {
            // DESTINATARIS DE LA FORMACIÓ
            $d = FormUtil::getPassedValue('dest', null, 'POST');
            // Si $show = true retornarem a la vista d'activitat
            $show = FormUtil::getPassedValue('show', FALSE, 'GET');
            $item['destinataris'] = serialize($d);
            // OBJECTIUS
            $o = FormUtil::getPassedValue('obj', null, 'POST');
            $item['objectius'] = serialize($o);
            // CONTINGUTS
            $c = FormUtil::getPassedValue('con', null, 'POST');
            $item['continguts'] = serialize($c);
            // INFO SOBRE DIFERENTS ASPECTES DE GESTIÓ
            $g = FormUtil::getPassedValue('gestio', null, 'POST');
            $item['gestio'] = serialize($g);
            // CENTRES QUE PROBABLEMENT REALITZARAN AQUESTA ACTIVITAT        
            $hihacentres = FormUtil::getPassedValue('hihacentres', null, 'POST');
            if ($hihacentres) {
                $centres = FormUtil::getPassedValue('lcentres', null, 'POST');
                if ($centres > " ") {
                    // Eliminar els codis de centre erronis
                    $filtered = ModUtil::apiFunc($this->name, 'user', 'checkCentres', array('centres' => $centres));
                    $ncentres = $filtered['codis'];
                    $item['llocs'] = explode(",", $ncentres);
                }
                $item['centres'] = FormUtil::getPassedValue('obslloc', null, 'POST');
            }
            $item['sprId'] = FormUtil::getPassedValue('subprioritat', null, 'POST');
            $item['prioritaria'] = FormUtil::getPassedValue('prioritzada', null, 'POST');
            $item['tGTAF'] = FormUtil::getPassedValue('tGTAF', null, 'POST');
            $item['titol'] = FormUtil::getPassedValue('titol', null, 'POST');
            $item['observacions'] = FormUtil::getPassedValue('obs', null, 'POST');
            $item['curs'] = FormUtil::getPassedValue('tcurs', null, 'POST');
            $item['presencialitat'] = FormUtil::getPassedValue('tpres', null, 'POST');
            $item['abast'] = FormUtil::getPassedValue('tabast', null, 'POST');
            $item['hores'] = FormUtil::getPassedValue('nhores', null, 'POST');
            $item['obs_editor'] = FormUtil::getPassedValue('obs_editor', null, 'POST');
            $item['obs_validador'] = FormUtil::getPassedValue('obs_validador', null, 'POST');
            $item['actsPerZona'] = FormUtil::getPassedValue('az', null, 'POST');
            $item['contactes'] = FormUtil::getPassedValue('contacte', null, 'POST');
            $item['info'] = FormUtil::getPassedValue('info', null, 'POST');
            $estat = FormUtil::getPassedValue('estat1', null, 'POST');
            if (!is_null($estat))
                $item['estat'] = $estat; // Si no s'indica estat és manté el que tenia
            $item['activa'] = FormUtil::getPassedValue('activa', 1, 'POST');
            $item['ordre'] = 127;

            /* Estats de la fitxa: 
             * Esborrany 0 
             * Enviada 1
             * Per revisar 2 
             * validada 3 
             * modificada 4 
             * anul·lada 5
             */
            if ($item['estat'] == Cataleg_Constant::VALIDADA) { // Validar
                // si no ha estat mai validada es guarda la informació
                if (!(ModUtil::apiFunc($this->name, 'user', 'isValidated', $item['actId']))) {
                    // Establir data de validació i uid del validador
                    $item['validador'] = UserUtil::getVar('uid');
                    $item['dataVal'] = date('Y-m-d H:i:s');
                }
            }
            // S'ha marcat l'activitata modificadaa per a ser mostrada al bloc de novetats
            $novetat = FormUtil::getPassedValue('novetat', null, 'POST');

            if ($novetat) {
                // Escriure dataModif;  
                $item['dataModif'] = date('Y-m-d H:i:s');
            }

            // S'ha marcat per deixar de mostrar l'activitat modificada al bloc de novetats
            $eraseDataMod = FormUtil::getPassedValue('eraseMod', false, 'POST');
            if ($eraseDataMod)
                $item['dataModif'] = null; //Esborrem la data de modificació a efectes de visualització en el bloc novetats

            if ($item['actId']) {
                // Estem editant. L'activitat ja existeix
                $r = ModUtil::apifunc('Cataleg', 'user', 'updateActivitat', $item);
            } else {
                // S'ha de crear nova
                $r = ModUtil::apifunc('Cataleg', 'user', 'addActivitat', $item);
            }
            if ($r)
                LogUtil::registerStatus($this->__('Les dades s\'han desat correctament.'));
            else
                LogUtil::registerError($this->__('No s\'han pogut desar totes les dades de l\'activitat.'));
            if ($show) {
                return system::redirect(ModUtil::url('Cataleg', 'user', 'show', array('back' => $back, 'actId' => $item['actId'])));
            } else {
                return system::redirect(ModUtil::url('Cataleg', 'user', 'view', array('catId' => $item['catId'])));
            }
        } else {
            // No hi ha accés a crear o modificar
            $view = Zikula_View::getInstance('Cataleg', false);
            $view->assign('icon', 'error.png');
            $view->assign('msg', $this->$this->__('No teniu permís per actualitzar o crear activitats en aquest catàleg.'));
            return $view->fetch('user/Cataleg_user_msg.tpl');
        }
    }
Ejemplo n.º 4
0
    /**
     * When Zikula authentication has failed, start SiriusXtecAuth
     * 
     * @return bool true authetication succesful
     */
    public static function trySiriusXtecAuth(Zikula_Event $event)
    {
        $authentication_info = FormUtil::getPassedValue('authentication_info', isset($args['authentication_info']) ? $args['authentication_info'] : null, 'POST');
        // Argument check
        if ($authentication_info['login_id'] == '' || $authentication_info['pass'] == '') {
            LogUtil::registerError(__('Usuari o contrasenya en blanc.'));
            return System::redirect(System::getHomepageUrl());
        }

        $uname = $authentication_info['login_id'];
        $pass = $authentication_info['pass'];

        // check if ldap is active
        if (!ModUtil::getVar('SiriusXtecAuth','ldap_active',false)) return false;
        // checking new users case
        $userid = UserUtil::getIdFromName($uname);
        if (($userid === false) && (ModUtil::getVar('SiriusXtecAuth','users_creation',false) === false)) return false;
        
        // connect to ldap server
        if (!$ldap_ds = ldap_connect(ModUtil::getVar('SiriusXtecAuth', 'ldap_server'))) {
            LogUtil::registerError(__('No ha pogut connectar amb el servidor ldap.'));
            return false;
        }        
        ///////////////////
        // Checking ldap validation
        $ldaprdn = ModUtil::getVar('SiriusXtecAuth', 'ldap_searchattr') . '=' . $uname . ',' . ModUtil::getVar('SiriusXtecAuth', 'ldap_basedn');
        $bind = @ldap_bind($ldap_ds, $ldaprdn, $pass);
        if (!$bind) {
            LogUtil::registerError(__('La informació introduïda no correspon a cap validació manual ni XTEC.'));
            return false;
        }
        LogUtil::getErrorMessages();
        // Case new users
        if ($userid === false) {
            $userLdapFields = array ('cn', 'uid', 'givenname', 'sn', 'mail');
            // search the directory for our user
            if (!$ldap_sr = ldap_search($ldap_ds, ModUtil::getVar('SiriusXtecAuth', 'ldap_basedn'), ModUtil::getVar('SiriusXtecAuth', 'ldap_searchattr') . '=' . DataUtil::formatForStore($uname),$userLdapFields)) {
                LogUtil::registerError(__('Problemes en la creació d\'un nou usuari de Sirus des de la validació XTEC (I).'));
                return false;
            }
            $info = ldap_get_entries($ldap_ds, $ldap_sr);
            if (!$info || $info['count'] == 0) {
                LogUtil::registerError('Problemes en la creació d\'un nou usuari de Sirus des de la validació XTEC (II).');
                return false;
            } else {
                if (!isset($info[0]['dn'])) {
                    LogUtil::registerError('Problemes en la creació d\'un nou usuari de Sirus des de la validació XTEC (III).');
                    return false;
                }
            }
            
            $user['zk']['uname'] =$uname;
            $user['zk']['email'] = $info[0]['mail'][0];
            if (ModUtil::getVar('SiriusXtecAuth','iw_write',false) && ModUtil::available('IWusers')) {
                $user['iw']['nom'] = ucwords(strtolower($info[0]['givenname'][0]));
                $cognom_separator = strpos($info[0]['sn'][0],' ');
                if ($cognom_separator && ModUtil::getVar('SiriusXtecAuth','iw_lastnames',false)) {
                    $user['iw']['cognom1'] = ucwords(strtolower(substr($info[0]['sn'][0],0,$cognom_separator)));
                    $user['iw']['cognom2'] = ucwords(strtolower(substr($info[0]['sn'][0],$cognom_separator+1)));
                } else{
                    $user['iw']['cognom1'] = ucwords(strtolower($info[0]['sn'][0]));
                    $user['iw']['cognom1'] = '';
                }
            }
            if (ModUtil::getVar('SiriusXtecAuth','new_users_activation', false)) {
                $user['zk']['activated'] = 1;
            }else {
                $user['zk']['activated'] = 0;
            }
            $user['gr'] = ModUtil::getVar('SiriusXtecAuth','new_users_groups');
            
            $userid = ModUtil::apifunc('SiriusXtecAuth', 'listeners', 'createUser', $user);
            if (!$userid) {
                LogUtil::registerError(__('No s\'ha pogut crear l\'usuari. Torneu a validar-vos.'));
                return false;
            }
            
        }
        
        @ldap_unbind($ldap_ds);
        UserUtil::setUserByUid($userid);
        
        if (!ModUtil::getVar('SiriusXtecAuth','loginXtecApps',false)) {
            return System::redirect(System::getHomepageUrl());
        } else {
			$pass_e = urlencode(base64_encode($pass));
            return System::redirect(ModUtil::url('SiriusXtecAuth', 'user', 'logingXtecApps',array('uname'=>$uname,'pass'=>$pass_e,'logtype'=>'in')));
        }

    }
Ejemplo n.º 5
0
    public function grups($args) {
        $gid = FormUtil::getPassedValue('gid', isset($args['gid']) ? $args['gid'] : 0, 'GETPOST');
        $gid1 = FormUtil::getPassedValue('gid1', isset($args['gid1']) ? $args['gid1'] : 0, 'GETPOST');
        $action = FormUtil::getPassedValue('action', isset($args['action']) ? $args['action'] : 0, 'GETPOST');
        $uid0 = FormUtil::getPassedValue('uid0', isset($args['uid0']) ? $args['uid0'] : array(), 'GETPOST');
        $uid1 = FormUtil::getPassedValue('uid1', isset($args['uid1']) ? $args['uid1'] : array(), 'GETPOST');
        $confirmation = FormUtil::getPassedValue('confirmation', isset($args['confirmation']) ? $args['confirmation'] : 0, 'POST');

        // Security check
        if (!SecurityUtil::checkPermission('IWgroups::', '::', ACCESS_ADMIN)) {
            throw new Zikula_Exception_Forbidden();
        }

        //Si els dos grup estan buits. Cancelem l'acció
        if (($gid == 0 || $gid == '') && ($gid1 == 0 || $gid1 == '')) {
            LogUtil::registerError($this->__('Incorrect action during the group change'));
            return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                'gid1' => $gid1)));
        }

        // Confirm authorisation code
        $this->checkCsrfToken();

        switch ($action) {
            case 1:
                if (empty($uid0)) {
                    LogUtil::registerError($this->__('No user selected'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }

                //Si el grup de destí és el buit. Cancel·lem l'acció
                if (($gid1 == 0 || $gid1 == '')) {
                    LogUtil::registerError($this->__('Incorrect action during the group change'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }

                //Si l'usuari prové del grup buit no es demana confirmació i simplement s'afegeix al grup de destí
                if ($gid == '' || $gid == 0) {
                    $afegit = ModUtil::apiFunc('IWgroups', 'admin', 'afegeix_membres', array('gid' => $gid1,
                                'uid' => $uid0));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }

                //Si no cal demanar confirmació segons la configuració posem $comfirmacio=true
                if (ModUtil::getVar('IWgroups', 'confmou') == 0) {
                    $confirmation = 1;
                }

                if ($confirmation == 0) {
                    $group1 = ModUtil::apifunc('IWgroups', 'user', 'get', array('gid' => $gid));
                    $group2 = ModUtil::apifunc('IWgroups', 'user', 'get', array('gid' => $gid1));

                    $usersList = '$$';

                    foreach ($uid0 as $userId) {
                        $usersList .= $userId . '$$';
                    }

                    foreach ($uid1 as $userId) {
                        $usersList .= $userId . '$$';
                    }

                    //get all users information
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                    $usersInfo = ModUtil::func('IWmain', 'user', 'getAllUsersInfo', array('sv' => $sv,
                                'list' => $usersList,
                                'info' => 'ccn'));
                    return $this->view->assign('usersInfo', $usersInfo)
                                    ->assign('group1', $group1)
                                    ->assign('group2', $group2)
                                    ->assign('uid0', $uid0)
                                    ->assign('action', $action)
                                    ->assign('gid', $gid)
                                    ->assign('gid1', $gid1)
                                    ->fetch('IWgroups_admin_grups.tpl');
                }

                if (ModUtil::apifunc('IWgroups', 'admin', 'mou_membres', array('gid' => $gid,
                            'uid' => $uid0,
                            'gid1' => $gid1))) {
                    //El deplaçament dels usuaris ha anat bé
                    LogUtil::registerStatus($this->__('The groups changes have been successfull'));
                }
                break;
            case 2:
                if (empty($uid0)) {
                    LogUtil::registerError($this->__('No user selected'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }

                //Si el grup de destí és el buit. Cancel·lem l'acció
                if (($gid1 == 0 || $gid1 == '')) {
                    LogUtil::registerError($this->__('Incorrect action during the group change'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }
                if (ModUtil::apifunc('IWgroups', 'admin', 'afegeix_membres', array('gid' => $gid1,
                            'uid' => $uid0))) {
                    LogUtil::registerStatus($this->__('Users added to group successfully'));
                }
                break;
            case 3:
                if (empty($uid1)) {
                    LogUtil::registerError($this->__('No user selected'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }
                //Si el grup de destí és el buit. Cancel·lem l'acció
                if (($gid == 0 || $gid == '')) {
                    LogUtil::registerError($this->__('Incorrect action during the group change'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }
                //Si l'usuari prové del grup buit no es demana confirmació i simplement s'afegeix al grup de destí
                if ($gid1 == '' || $gid1 == 0) {
                    $afegit = ModUtil::apiFunc('IWgroups', 'admin', 'afegeix_membres', array('gid' => $gid,
                                'uid' => $uid1));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }
                //Si no cal demanar confirmació segons la configuració posem $comfirmacio=true
                if (ModUtil::getVar('IWgroups', 'confmou') == 0) {
                    $confirmation = 1;
                }

                if ($confirmation == 0) {
                    $group1 = ModUtil::apifunc('IWgroups', 'user', 'get', array('gid' => $gid1));
                    $group2 = ModUtil::apifunc('IWgroups', 'user', 'get', array('gid' => $gid));

                    $usersList = '$$';

                    foreach ($uid0 as $userId) {
                        $usersList .= $userId . '$$';
                    }

                    foreach ($uid1 as $userId) {
                        $usersList .= $userId . '$$';
                    }

                    //get all users information
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                    $usersInfo = ModUtil::func('IWmain', 'user', 'getAllUsersInfo', array('sv' => $sv,
                                'list' => $usersList,
                                'info' => 'ncc'));
                    return $this->view->assign('usersInfo', $usersInfo)
                                    ->assign('group1', $group1)
                                    ->assign('group2', $group2)
                                    ->assign('uid1', $uid1)
                                    ->assign('action', $action)
                                    ->assign('gid', $gid)
                                    ->assign('gid1', $gid1)
                                    ->fetch('IWgroups_admin_grups.tpl');
                }

                //Cridem la funció API que farà l'esborrament del registre
                if (ModUtil::apifunc('IWgroups', 'admin', 'mou_membres', array('gid' => $gid1,
                            'uid' => $uid1,
                            'gid1' => $gid))) {
                    //El deplaçament dels usuaris ha anat bé
                    LogUtil::registerStatus($this->__('The groups changes have been successfull'));
                }
                break;
            case 4:
                if (empty($uid1)) {
                    LogUtil::registerError($this->__('No user selected'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }
                //Si el grup de destí és el buit. Cancel·lem l'acció
                if (($gid == 0 || $gid == '')) {
                    LogUtil::registerError($this->__('Incorrect action during the group change'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }
                if (ModUtil::apifunc('IWgroups', 'admin', 'afegeix_membres', array('gid' => $gid,
                            'uid' => $uid1))) {
                    LogUtil::registerStatus($this->__('Users added to group successfully'));
                }
                break;
            case 5:
                if (empty($uid0) && empty($uid1)) {
                    LogUtil::registerError($this->__('No user selected'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }

                //Si no cal demanar confirmació segons la configuració posem $comfirmacio=true
                if (ModUtil::getVar('IWgroups', 'confesb') == 0) {
                    $confirmation = 1;
                }
                if ($confirmation == 0) {
                    if ($gid > 0) {
                        $group1 = ModUtil::apifunc('IWgroups', 'user', 'get', array('gid' => $gid));
                    } else {
                        $group1 = array();
                    }
                    if ($gid1 > 0) {
                        $group2 = ModUtil::apifunc('IWgroups', 'user', 'get', array('gid' => $gid1));
                    } else {
                        $group2 = array();
                    }

                    $usersList = '$$';

                    foreach ($uid0 as $userId) {
                        $usersList .= $userId . '$$';
                    }

                    foreach ($uid1 as $userId) {
                        $usersList .= $userId . '$$';
                    }

                    //get all users information
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                    $usersInfo = ModUtil::func('IWmain', 'user', 'getAllUsersInfo', array('sv' => $sv,
                                'list' => $usersList,
                                'info' => 'ncc'));
                    return $this->view->assign('usersInfo', $usersInfo)
                                    ->assign('group1', $group1)
                                    ->assign('group2', $group2)
                                    ->assign('uid1', $uid1)
                                    ->assign('uid0', $uid0)
                                    ->assign('action', $action)
                                    ->assign('gid', $gid)
                                    ->assign('gid1', $gid1)
                                    ->fetch('IWgroups_admin_grups.tpl');
                }
                //Cridem la funció API que farà l'esborrament del registre
                if (ModUtil::apifunc('IWgroups', 'admin', 'esborra_membres', array('uid' => $uid0,
                            'gid' => $gid,
                            'uid1' => $uid1,
                            'gid1' => $gid1))) {
                    //L'esborrament ha estat un éxit i ho notifiquem
                    LogUtil::registerStatus($this->__('Users removed from groups successfully'));
                }
                break;
            case 6:
                if (empty($uid0) && empty($uid1)) {
                    LogUtil::registerError($this->__('No user selected'));
                    return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                                        'gid1' => $gid1)));
                }

                if (!empty($uid0) && !empty($uid1)) {
                    $users = array_merge($uid0, $uid1);
                } elseif (!empty($uid0)) {
                    $users = $uid0;
                } else {
                    $users = $uid1;
                }

                $usersList = '$$';

                foreach ($users as $userId) {
                    $usersList .= $userId . '$$';
                }

                $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                $usersInfo = ModUtil::func('IWmain', 'user', 'getAllUsersInfo', array('sv' => $sv,
                            'list' => $usersList,
                            'info' => 'ccn'));

                foreach ($users as $userId) {
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                    $quinsgrups[$userId] = ModUtil::func('IWmain', 'user', 'getAllUserGroups', array('sv' => $sv,
                                'uid' => $userId));
                }

                $sv1 = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                $groups = ModUtil::func('IWmain', 'user', 'getAllGroupsInfo', array('sv' => $sv1));

                return $this->view->assign('usersInfo', $usersInfo)
                                ->assign('action', $action)
                                ->assign('users', $users)
                                ->assign('gid', $gid)
                                ->assign('gid1', $gid1)
                                ->assign('quinsgrups', $quinsgrups)
                                ->assign('groups', $groups)
                                ->fetch('IWgroups_admin_grups.tpl');
            case 0:
                if ($gid == '') {
                    $gid = 0;
                }
                if ($gid1 == '') {
                    $gid1 = 0;
                }
                break;
        }
        return System::redirect(ModUtil::url('IWgroups', 'admin', 'membres', array('gid' => $gid,
                            'gid1' => $gid1)));
    }
Ejemplo n.º 6
0
    public function addeditAuxElement() { //copiat i pendent d'arranjar
        if (!SecurityUtil::checkPermission('SiriusAdmin::', '::', ACCESS_ADMIN)) {
            return LogUtil::registerPermissionError();
        }
        $item['auxId'] = FormUtil::getPassedValue('auxId', null, 'POST');
        $item['tipus'] = FormUtil::getPassedValue('tipus', null, 'POST');
        $item['ordre'] = FormUtil::getPassedValue('ordre', null, 'POST');
        $item['nom'] = FormUtil::getPassedValue('nom', null, 'POST');
        $item['nomCurt'] = FormUtil::getPassedValue('nomCurt', null, 'POST');
        $item['visible'] = FormUtil::getPassedValue('visible', 0, 'POST');
        $r = ModUtil::apifunc('Cataleg', 'admin', 'saveAuxElement', $item);

        if ($r) {
            if ($r == 'edit') {
                LogUtil::registerStatus($this->__('L\'element s\'ha editat correctament.'));
            } else {
                LogUtil::registerStatus($this->__('L\'elements\'ha creat correctament.'));
            }
        } else {
            LogUtil::registerError($this->__('No s\'ha pogut desar l\'element.'));
        }
        return system::redirect(ModUtil::url('Cataleg', 'admin', 'auxgest'));
    }
Ejemplo n.º 7
0
    /**
     * Save the news that have the user in the different modules iw
     *
     * @author	Albert Pérez Monfort (aperezm@xtec.cat)
     * @param	$where:
     * 			res->All
     * 			fo->Forums
     * 			fu->Forms
     * 			me->Messages
     * 			ta->Noteboard
     * 			ag->Agendas
     * @return	The news prepared for HTML seen
     */
    public function news($args) {
        $where = FormUtil::getPassedValue('where', isset($args['where']) ? $args['where'] : null, 'POST');
        $uid = FormUtil::getPassedValue('uid', isset($args['uid']) ? $args['uid'] : null, 'POST');
        $sv = FormUtil::getPassedValue('sv', isset($args['sv']) ? $args['sv'] : null, 'POST');
        if (ModUtil::func('IWmain', 'user', 'checkSecurityValue', array('sv' => $sv))) {
            $requestByCron = true;
        }
        if ($uid == null) {
            $uid = UserUtil::getVar('uid');
        }
        $before = '';
        $after = '';
        $newsArray = array();
        $realUid = UserUtil::getVar('uid');
        if ($where != '') {
            $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
            $news = ModUtil::func('IWmain', 'user', 'userGetVar', array('uid' => $uid,
                        'module' => 'IWmain_block_news',
                        'name' => 'news',
                        'sv' => $sv,
                        'nult' => true));
            $init = '<!---' . $where . '--->';
            $end = '<!---/' . $where . '--->';
            $pos_init = strpos($news, $init);
            $pos_end = ModUtil::func('IWmain', 'user', 'stringrpos', array('sHaystack' => $news,
                        'sNeedle' => $end));
            $calc = strlen($news) - $pos_end;
            $before = substr($news, 0, $pos_init);
            $after = substr($news, - $calc);
        }

        //IWnoteboard
        $modid = ModUtil::getIdFromName('IWnoteboard');
        $modinfo = ModUtil::getInfo($modid);
        //if module is active
        if ($modinfo['state'] == 3 && ($where == 'ta' || $where == '')) {
            //Check that user can access the module
            if (SecurityUtil::checkPermission('IWnoteboard::', "::", ACCESS_READ) || $requestByCron) {
                //Get news of the user
                if ($uid != $realUid) {
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                }
                $noves = ModUtil::apiFunc('IWnoteboard', 'user', 'noves', array('uid' => $uid,
                            'sv' => $sv));
                if ($noves['nombre'] > 0) {
                    $newsArray[] = array('code' => '<!---ta--->');
                    $newsArray[] = array('code' => '',
                        'nNotes' => $noves['nombre'],
                        'url' => ModUtil::getVar('IWmain', 'URLBase') . 'index.php?module=IWnoteboard&func=main',
                        'element' => $this->__('Noteboard notes'),
                        'title' => '');
                    $newsArray[] = array('code' => '<!---/ta--->');
                }
            }
        }

        //IWagendas
        $modid = ModUtil::getIdFromName('IWagendas');
        $modinfo = ModUtil::getInfo($modid);
        //if module is active
        if ($modinfo['state'] == 3 && ($where == 'ag' || $where == '')) {
            //Check that user can access the module
            if (SecurityUtil::checkPermission('IWagendas::', "::", ACCESS_READ) || $requestByCron) {
                if ($uid != $realUid) {
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                }
                $noves = ModUtil::apiFunc('IWagendas', 'user', 'newItem', array('uid' => $uid,
                            'sv' => $sv));
                //Get user news in agendas
                if ($noves > 0) {
                    $newsArray[] = array('code' => '<!---ag--->');
                    $newsArray[] = array('code' => '',
                        'nNotes' => $noves,
                        'url' => ModUtil::getVar('IWmain', 'URLBase') . 'index.php?module=IWagendas',
                        'element' => $this->__('Personal agenda'),
                        'title' => '');
                    $newsArray[] = array('code' => '<!---/ag--->');
                }
            }
        }

        //Private messages
        $modid = ModUtil::getIdFromName('IWmessages');
        $modinfo = ModUtil::getInfo($modid);
        //if module is active
        if ($modinfo['state'] == 3 && ($where == 'me' || $where == '')) {
            if (SecurityUtil::checkPermission('IWmessages::', "::", ACCESS_READ) || $requestByCron) {
                if ($uid != $realUid) {
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                }
                $noves = ModUtil::apiFunc('IWmessages', 'user', 'countitems', array('uid' => $uid,
                            'unread' => true,
                            'sv' => $sv));
                if ($noves > 0) {
                    $newsArray[] = array('code' => '<!---me--->');
                    $newsArray[] = array('code' => '',
                        'nNotes' => $noves,
                        'url' => ModUtil::getVar('IWmain', 'URLBase') . 'index.php?module=IWmessages&func=main',
                        'element' => $this->__('Private messages'),
                        'title' => '');
                    $newsArray[] = array('code' => '<!---/me--->');
                }
            }
        }

        //IWforums
        $modid = ModUtil::getIdFromName('IWforums');
        $modinfo = ModUtil::getInfo($modid);
        if ($modinfo['state'] == 3 && ($where == 'fo' || $where == '')) {
            if (SecurityUtil::checkPermission('IWforums::', "::", ACCESS_READ) || $requestByCron) {
                if ($uid != $realUid) {
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                }
                $registres = ModUtil::apiFunc('IWforums', 'user', 'getall', array('uid' => $uid,
                            'sv' => $sv));
                $newsArray[] = array('code' => '<!---fo--->');
                foreach ($registres as $registre) {
                    if ($uid != $realUid) {
                        $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                    }
                    if ($registre['actiu'] == 1 && ModUtil::func('IWforums', 'user', 'access', array('fid' => $registre['fid'],
                                'uid' => $uid, 'sv' => $sv)) > 0) {
                        if ($uid != $realUid) {
                            $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                        }
                        $noves = ModUtil::apiFunc('IWforums', 'user', 'compta_msg', array('fid' => $registre['fid'],
                                    'tots' => true,
                                    'uid' => $uid,
                                    'sv' => $sv));
                        if ($noves['nollegits'] > 0) {
                            $newsArray[] = array('code' => '',
                                'nNotes' => $noves['nollegits'],
                                'url' => ModUtil::getVar('IWmain', 'URLBase') . 'index.php?module=IWforums&func=forum&fid=' . $registre['fid'],
                                'element' => $this->__('Forum'),
                                'title' => $registre['nom_forum']);
                        }
                    }
                }
                $newsArray[] = array('code' => '<!---/fo--->');
            }
        }

        //IWforms
        $modid = ModUtil::getIdFromName('IWforms');
        $modinfo = ModUtil::getInfo($modid);
        if ($modinfo['state'] == 3 && ($where == 'fu' || $where == '')) {
            if (SecurityUtil::checkPermission('IWforms::', "::", ACCESS_READ) || $requestByCron) {
                //get all the active forms
                if ($uid != $realUid) {
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                }
                $forms = ModUtil::apiFunc('IWforms', 'user', 'getAllForms', array('user' => 1,
                            'sv' => $sv));
                //get all the groups of the user
                $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                $userGroups = ModUtil::func('IWmain', 'user', 'getAllUserGroups', array('uid' => $uid,
                            'sv' => $sv));
                foreach ($userGroups as $group) {
                    $userGroupsArray[] = $group['id'];
                }
            }
            foreach ($forms as $form) {
                if ($uid != $realUid) {
                    $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                }
                $access = ModUtil::func('IWforms', 'user', 'access', array('fid' => $form['fid'],
                            'userGroups' => $userGroupsArray,
                            'uid' => $uid,
                            'sv' => $sv));
                $newsArray[] = array('code' => '<!---fu--->');
                if ($access['level'] > 1) {
                    // get not view user news
                    if ($uid != $realUid) {
                        $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                    }
                    $nNotes = ModUtil::apiFunc('IWforms', 'user', 'getNewNotes', array('fid' => $form['fid'],
                                'uid' => $uid,
                                'sv' => $sv));
                    if (count($nNotes) > 0) {
                        // user can read the notes
                        $url = ($access['level'] == 7) ? ModUtil::getVar('IWmain', 'URLBase') . 'index.php?module=IWforms&func=manage&fid=' . $form['fid'] : ModUtil::getVar('IWmain', 'URLBase') . 'index.php?module=IWforms&func=read&fid=' . $form['fid'];
                        $newsArray[] = array('code' => '',
                            'nNotes' => count($nNotes),
                            'url' => $url,
                            'element' => $this->__('Form'),
                            'title' => $form['formName']);
                    }
                }
                $newsArray[] = array('code' => '<!---/fu--->');
            }
        }

        //Change avatar requests
        if (SecurityUtil::checkPermission('IWusers::', '::', ACCESS_ADMIN) && ($where == 'ch' || $where == '')) {
            $avatars = ModUtil::apifunc('IWusers', 'admin', 'getNotValidatedAvatars');
            if (count($avatars) > 0) {
                $newsArray[] = array('code' => '<!---ch--->');
                $newsArray[] = array('code' => '',
                    'nNotes' => count($avatars),
                    'url' => ModUtil::getVar('IWmain', 'URLBase') . 'index.php?module=IWusers&type=admin&func=changeAvatarView',
                    'element' => $this->__('Avatar replacement'),
                    'title' => '');
                $newsArray[] = array('code' => '<!---/ch--->');
            }
        }

        $news = $this->view->assign('newsArray', $newsArray)
                ->fetch('IWmain_block_news.tpl');

        $news = $before . $news . $after;
        $news = str_replace('\'', '&acute;', $news);

        $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
        ModUtil::func('IWmain', 'user', 'userSetVar', array('uid' => $uid,
            'name' => 'news',
            'module' => 'IWmain_block_news',
            'sv' => $sv,
            'value' => $news,
            'lifetime' => '700'));

        return true;
    }