【问题标题】:Symfony sfGuardPlugin password recoverySymfony sfGuardPlugin 密码恢复
【发布时间】:2011-07-02 17:39:40
【问题描述】:

我支持一个基于 symfony 的网站。关于某种“管理页面”存在问题。

虽然通过阅读日志和比较最近的备份对整个事情了解不多,但我认为我能够解决问题(一些开发人员删除了路由,但没有修复模板)。

我没有网站的管理员密码,但拥有服务器的 root 访问权限和数据库的超级访问权限(在本例中为 postgres)。

您能帮我在不知道当前密码的情况下如何创建自己的帐户吗?

免责声明:我对 PHP 的 OOP 接口了解不多,因为我不是程序员,而是系统管理员。

编辑

symfony version 1.0.16

【问题讨论】:

  • 你运行的是什么版本的 Symfony?
  • 它是 2009 年的,如果你告诉我在哪里看,我会查找它。
  • 如果您仍想查找版本,请参阅我关于查找symfony 命令的答案,然后运行symfony --version

标签: php database passwords symfony1 recovery


【解决方案1】:

尝试登录服务器并切换到 Symfony 项目的根目录。那里可能有一个“symfony”脚本/链接(详细信息取决于您的操作系统以及 Symfony 的设置方式;您可能只需要运行./symfony 而不是需要php symfony)。运行此程序以查看这些基础知识是否有效:

php symfony

如果可行,您应该获得一份可以执行的任务列表。如果您使用的是 sfGuardPlugin,您应该会看到一些类似 guard:create-user 的任务。

要获取有关任务的更多信息,请尝试以下操作:

php symfony help guard:create-user

但基本上,假设一个相当现代的 Symfony 安装和插件,尝试类似:

php symfony guard:create-user --env=prod newusername newpassword

(--env=prod 选项在生产环境中创建用户,这可能是您想要的。)

如果您想要执行仅限超级用户的任务,请尝试执行以下操作:

php symfony guard:promote newusername

这将赋予新用户超级管理员权限。

您可能还会发现一个guard:change-password 任务,它会简单地重置给定用户的密码。

【讨论】:

  • 谢谢!正是我想要的。我保留这个以备将来参考。 (这是否记录在某处?)
  • @cstamas Symfony 命令行任务在documentation 的几个不同地方进行了讨论;彻底的治疗可能最好在参考中找到here。对于 sfGuardPlugin 添加的任务,请查看 sfGuardPlugin 插件页面的“自述文件”选项卡,尽管准确了解您的插件版本功能的最佳方法可能是 symfony help <task_name> 用于您看到的 guard 任务运行symfony
【解决方案2】:

我最终编辑了名为:

plugins/sfGuardPlugin/lib/validator/sfGuardUserValidator.class.php

这是进行身份验证的地方。 我添加了几行代码来绕过对已创建用户的实际密码检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2011-06-13
    • 2010-11-30
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多