Domanda

Nella tabella admin_role c'è una colonna role_type che può avere 2 valori:

    .
  • 'g' - Mage_Admin_Model_Acl::ROLE_TYPE_GROUP
  • 'u' - Mage_Admin_Model_Acl::ROLE_TYPE_USER

    Con i loro nomi i nomi salta la conclusione che si è per i ruoli utente e l'altro è per i ruoli di gruppo, ma non riesco a capire come sono utilizzati questi valori.
    AFAIK Ogni utente amministratore, al fine di avere accesso ad alcune aree di amministrazione deve avere un ruolo.È quel ruolo 'il gruppo'?Se sì, allora qual è l'uso del valore U.Se no, qual è il 'il gruppo' allora?

    La versione magente non è importante.È stato lì dal "Big Bang" (V0.7) ed è persino portato nel prossimo universo (Magento 2).

È stato utile?

Soluzione

Sì, quello è "il gruppo".Ogni utente ha un ruolo utente che ha un genitore di un ruolo di gruppo, tutti gli utenti sono assegnati a un gruppo tramite Parent_ID in quella tabella.

L'unico valore reale che posso vedere è nella generazione ACL in cui possono scaricare in tutta la tabella e generare la struttura ACL basata sulle informazioni fornite, in Mage_admin_Model_RESOURCE_ACL :: LoadRoles

public function loadRoles(Mage_Admin_Model_Acl $acl, array $rolesArr)
{
    foreach ($rolesArr as $role) {
        $parent = ($role['parent_id'] > 0) ? Mage_Admin_Model_Acl::ROLE_TYPE_GROUP . $role['parent_id'] : null;
        switch ($role['role_type']) {
            case Mage_Admin_Model_Acl::ROLE_TYPE_GROUP:
                $roleId = $role['role_type'] . $role['role_id'];
                $acl->addRole(Mage::getModel('admin/acl_role_group', $roleId), $parent);
                break;

            case Mage_Admin_Model_Acl::ROLE_TYPE_USER:
                $roleId = $role['role_type'] . $role['user_id'];
                if (!$acl->hasRole($roleId)) {
                    $acl->addRole(Mage::getModel('admin/acl_role_user', $roleId), $parent);
                } else {
                    $acl->addRoleParent($roleId, $parent);
                }
                break;
        }
    }

    return $this;
}
.

Sembra che abbiano potuto usare ($ ruolo ['genitore_id']> 0) per determinare se è un gruppo o un ruolo utente, ma immagino che sia un vero errore.

Altri suggerimenti

In breve: cosa chiami "il ruolo" è il gruppo (come "amministratori").

Ogni gruppo ha una voce con il tipo G e ciascun utente ha una voce con il tipo U che si riferisce al gruppo dell'utente tramite parent_id.Tutte le regole di accesso sono definite a livello di gruppo.Se guardi il tavolo admin_rules, vedrai che tutte le voci hanno G come tipo di ruolo.

La funzione admin_rule.role_type sembra essere qualcosa come il stock_id, in qualche modo previsto, mai completamente implementato e quindi portato avanti perché nessuno osa toccarlo.

Fuori dalla curiosità Ho provato a inserire un set di dati con tipo di ruolo U manualmente ma il ruolo principale richiede sempre la precedenza, non importa se è una regola generacodicagcode o allow.E senza un ruolo genitore, non si accede a tutti i pannelli di amministrazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top