Der Administratoranmeldung funktioniert nicht ordnungsgemäß nach Überschreibung des adminHtml -Controllers

magento.stackexchange https://magento.stackexchange.com/questions/5232

  •  16-10-2019
  •  | 
  •  

Frage

Ich hatte eine Überschreibung von Administrator -Benutzer -Controller, es funktionierte einwandfrei, aber wenn ich auf die Link -Link -Seite auf Anmeldung klicke, leitet es nicht auf die Administratoranmeldeseite um. Seite leitet auf der Vorderseite um.

Vorderer Screenshot http://postimg.org/image/71bshl9ar/

Code überschreiben.

  <admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <FME_Bookingreservation before="Mage_Adminhtml">FME_Bookingreservation</FME_Bookingreservation>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

Controller -Code:

    require_once 'Mage/Adminhtml/controllers/Permissions/UserController.php';
class FME_Bookingreservation_Permissions_UserController extends Mage_Adminhtml_Permissions_UserController
{


public function saveAction()
{

    if ($data = $this->getRequest()->getPost()) {


       $data['workshop_id'] = implode(',', $data['workshop_id']);

        $id = $this->getRequest()->getParam('user_id');
        $model = Mage::getModel('admin/user')->load($id);
        if (!$model->getId() && $id) {
            Mage::getSingleton('adminhtml/session')->addError($this->__('This user no longer exists.'));
            $this->_redirect('*/*/');
            return;
        }
        $model->setData($data);

        /*
         * Unsetting new password and password confirmation if they are blank
         */
        if ($model->hasNewPassword() && $model->getNewPassword() === '') {
            $model->unsNewPassword();
        }
        if ($model->hasPasswordConfirmation() && $model->getPasswordConfirmation() === '') {
            $model->unsPasswordConfirmation();
        }

        $result = $model->validate();
        if (is_array($result)) {
            Mage::getSingleton('adminhtml/session')->setUserData($data);
            foreach ($result as $message) {
                Mage::getSingleton('adminhtml/session')->addError($message);
            }
            $this->_redirect('*/*/edit', array('_current' => true));
            return $this;
        }

        try {
            $model->save();
            $workshop_collection = Mage::getModel('bookingreservation/staffmembers')->getCollection()->addFieldToFilter('workshop_admin_user_id',$model->getUserId());
         foreach($workshop_collection as $collection)
         {
            $workshop = Mage::getModel('bookingreservation/staffmembers')->load($collection->getStaffmembers_id());
            $workshop->setWorkshopAdminUserId(1);
            $workshop->save();                 
         }
         foreach($this->getRequest()->getPost('workshop_id') as $w_id)
         {
               $workshop = Mage::getModel('bookingreservation/staffmembers')->load($w_id);
               $workshop->setWorkshopAdminUserId($model->getUserId());
               $workshop->save();
         }

            if ( $uRoles = $this->getRequest()->getParam('roles', false) ) {
                /*parse_str($uRoles, $uRoles);
                $uRoles = array_keys($uRoles);*/
                if ( 1 == sizeof($uRoles) ) {
                    $model->setRoleIds($uRoles)
                        ->setRoleUserId($model->getUserId())
                        ->saveRelations();
                } else if ( sizeof($uRoles) > 1 ) {
                    //@FIXME: stupid fix of previous multi-roles logic.
                    //@TODO:  make proper DB upgrade in the future revisions.
                    $rs = array();
                    $rs[0] = $uRoles[0];
                    $model->setRoleIds( $rs )->setRoleUserId( $model->getUserId() )->saveRelations();
                }
            }
            Mage::getSingleton('adminhtml/session')->addSuccess($this->__('The user has been saved.'));
            Mage::getSingleton('adminhtml/session')->setUserData(false);
            $this->_redirect('*/*/');
            return;
        } catch (Mage_Core_Exception $e) {
            Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
            Mage::getSingleton('adminhtml/session')->setUserData($data);
            $this->_redirect('*/*/edit', array('user_id' => $model->getUserId()));
            return;
        }
    }
    $this->_redirect('*/*/');
}



}
War es hilfreich?

Lösung

Die häufigste Ursache für so etwas ist die Abmelde -URL

http://magento.example.com/index.php/admin/index/logout/key/9f874d25529246149a02320fa07aecd1/

passt zu einem anderen Controller und nicht zu dem

app/code/core/Mage/Adminhtml/controllers/IndexController.php

Datei mit der Abmeldenlogik. Hat Ihr Modul eine IndexController Datei? Wenn ja, entfernen Sie es, denn als Sie gesagt haben

<FME_Bookingreservation before="Mage_Adminhtml">

Sie haben Magento gesagt, sie sollen in Ihr Modul nachsehen admin Controller zuerst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top