• User Attivo

    Back-end Menu Personalizzato per Utente

    Ciao a Tutti,

    navigango ho trovato questo hack per modificare i diritti di accesso ai componenti nel back-end per i diversi tipi di utente (Super Administrator, Administrator, Manager).

    Come hack è meraviglioso, risolve proprio il peggior difetto di joomla ... quello di non poter configurare in modo flessibile i diritti sui vari componenti e funzionalita dell'amministrazione. 😄

    Però, provandolo ho scoperto che non funziona con tutti i componenti. Per esempio se scrivo

    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_replace' );Il componente viene visualizzato nel menu, ma se lo clicco mi nega l'accesso. (Lo stesso con il componente com_equotes)

    C'è qualcuno che sa come aggirare questo problema o conosce altri metodi per personalizzare il back-end in base ai vari utenti ??
    :mmm:

    Si può provare con il file includes/gacl.class.php. e con i livelli di utenza: SuperAdmin, Admin e Manager

    Per esempio, per restringere l'accesso degli Amministratori ai Moduli e ai Mambots:

    Alla (circa) linea 136 commenta le righe come nell'esempio:
    Code:
    // access to modules
    //$this->_mos_add_acl( 'administration', 'install', 'users', 'administrator', 'modules', 'all' );
    $this->_mos_add_acl( 'administration', 'install', 'users', 'super administrator', 'modules', 'all' );

    //$this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'modules', 'all' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'super administrator', 'modules', 'all' );

    // access to mambots
    //$this->_mos_add_acl( 'administration', 'install', 'users', 'administrator', 'mambots', 'all' );
    $this->_mos_add_acl( 'administration', 'install', 'users', 'super administrator', 'mambots', 'all' );

    //$this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'mambots', 'all' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'super administrator', 'mambots', 'all' );

    Praticamente abbiamo commentato tutte le righe che si riferiscono ad "Amministratore".
    In questo modo nessun Amministratore potrà avere accesso a Moduli e Mambots.

    Altro esempio, quello che ti calza meglio, dare a Manager e Administrator accesso a determinati componenti:

    Alla (circa) linea 152, c'è proprio scritto:
    Code:
    // uncomment following to allow managers to edit modules
    //array( 'administration', 'edit', 'users', 'manager', 'modules', 'all' );

    Se sostituiamo questo:
    Code:
    // access to components
    $this->_mos_add_acl( 'administration', 'install', 'users', 'administrator', 'components', 'all' );
    $this->_mos_add_acl( 'administration', 'install', 'users', 'super administrator', 'components', 'all' );

    $this->_mos_add_acl( 'administration', 'edit', 'users', 'super administrator', 'components', 'all' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'all' );

    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_newsflash' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_frontpage' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_media' );
    // ** add additional components for a manager as desired, or give access to all

    Con quest'altro:
    Code:
    // Custom Access - Start
    // added for administrators' access
    $this->_mos_add_acl( 'administration', 'install', 'users', 'administrator', 'components', 'all' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_massmail' );
    $this->_mos_add_acl( 'administration', 'manage', 'users', 'administrator', 'components', 'com_massmail' );
    $this->_mos_add_acl( 'administration', 'manage', 'users', 'administrator', 'components', 'com_trash' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_poll' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_media' );

    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_joomfish' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_yanc' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_artbanners' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_virtuemart' );

    // added for managers' access
    $this->_mos_add_acl( 'administration', 'install', 'users', 'manager', 'components', 'all' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_massmail' );
    $this->_mos_add_acl( 'administration', 'manage', 'users', 'manager', 'components', 'com_massmail' );
    $this->_mos_add_acl( 'administration', 'manage', 'users', 'manager', 'components', 'com_trash' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_poll' );

    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_joomfish' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_artbanners' );
    // Custom Access - End

    Abbiamo ottenuto di permettere ad Administrator l'accesso a: massmail, trash manager, polls, media manager, Joomfish, Artbanners, YANC e VirtueMart.
    Mentre il Manager avrà accesso a: massmail, trash manager, polls, Joomfish e Artbanners, MA NON A YANC e VirtueMart

    Attenzione che non puoi fare proprio tutto con questo hack, perché ad alcuni gruppi di utenza sono assegnate delle limitazioni che non si possono superare così facilmente.. per esempio un Manager non può gestire gli Utenti o accedere al Global Configuration


  • User Attivo

    Non c'è nessuno che ha lo stesso problema?