2011-04-21 114 views
4

我试图建立一些CRM工具,发送电子邮件给我的销售人员,并链接回Magento Admin内的页面。我一直在构建这样的URL:从外部管理面板链接到Magento管理

Mage::getUrl('*/quotes/edit', array('id'=>$quote->getQuoteId(), '_current'=>true)) 

问题是它只是将它们发送到仪表板。我假设这是因为“_current”的设置在登录时发生了变化,因此无效链接并将它们发送到默认页面。有关如何在Admin中包含会话的链接的任何想法?

+1

安全密钥失败,你最终在仪表板 – 2011-04-21 14:57:42

+0

@Anton S权..我试图找出如何追加安全密钥..有没有办法做到这一点? – Chris 2011-04-21 15:24:40

+0

当然,你可以禁用安全令牌,但我敢打赌,你不能伪造它的电子邮件内容,你必须修复_current的东西 – 2011-04-21 20:56:39

回答

3

从管理网址禁用密钥应该可以解决您的问题。

从管理的URL禁用密钥: -

  • 登录到管理
  • 进入系统 - >配置 - >高级 - >管理 - >安全 - >添加密钥来的网址
  • 选择没有
  • 保存配置
+0

是否存在禁用此功能的任何实际安全问题?我的意思是,网址上的秘密密钥真的能为我带来什么? – Chris 2011-04-22 11:08:12

+3

Magento说它已经为CSRF(跨站点请求伪造)攻击预防的URL添加了密钥。您可以在这里了解更多关于CSRF的信息: - http://en.wikipedia.org/wiki/Cross-site_request_forgery – 2011-04-22 11:20:26

+3

实际上Magento是REST,因此提供一个链接来删除所有客户给您的推销员会为业务做一个非常讨厌的笑话 – 2011-04-24 08:30:13

4

我想出了关闭基于动作名称密钥如下:

public function preDispatch() 
{ 
    if ($this->getRequest()->getActionName() == 'update') Mage::getSingleton('adminhtml/url')->turnOffSecretKey(); 
    parent::preDispatch(); 
} 

在测试版本1.6.2.0。将其粘贴到控制器中,不要忘记将操作名称'update'更改为您的名称,或者删除if语句以对控制器中的所有操作生效。