2011-02-23 81 views
1

我支持一个建立在symfony上的网站。某些“管理页面”存在问题。Symfony sfGuardPlugin密码恢复

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

我没有管理员密码的网站,但有权访问服务器和超级访问数据库(在这种情况下postgres)。

你能帮助我如何在不知道当前密码的情况下创建自己的帐户吗?免责声明:我不是很了解PHP的OOP接口,因为我不是程序员,而是系统管理员。

编辑

symfony version 1.0.16 
+0

你正在运行什么版本的Symfony? – corrodedmonkee 2011-02-23 12:46:09

+0

从2009年开始,如果你告诉我去哪里看,我会查找它。 – cstamas 2011-02-23 12:55:57

+1

如果您仍然想要查找版本,请参阅我的关于查找'symfony'命令的答案,并运行'symfony --version'。 – 2011-02-23 15:38:58

回答

4

尝试登录到服务器并更改为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选项会在生产环境中创建用户,这可能是您想要的。)

如果您想要执行超级用户专有任务,请尝试执行此操作S:

php symfony guard:promote newusername 

这将使新用户的超级管理员权限。

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

+0

谢谢!正是我在找什么。我保留这个以供将来参考。 (这是否记录在某处?) – cstamas 2011-02-24 01:27:29

+0

@cstamas Symfony命令行任务在整个[documentation](http://www.symfony-project.org/doc/1_4/)的几个不同的地方讨论;在参考文献中可能最好找到一个彻底的治疗方法[here](http://www.symfony-project.org/reference/1_4/en/16-Tasks)。对于sfGuardPlugin添加的任务,请查看[sfGuardPlugin](http://www.symfony-project.org/plugins/sfGuardPlugin)插件页面的“自述文件”选项卡,尽管最好的方法是确切知道您的版本插件的作用可能是'symfony help ',用于执行'symfony'时看到的'guard'任务。 – 2011-02-24 09:38:34

1

我结束了编辑该文件名为:

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

这是那里的认证发生。 我添加了几行来绕过已经创建的用户的实际密码检查。