0

我正在构建我的第一个 Symfony 项目。我的用户身份验证通过 LDAP 针对 Active Directory。当用户登录时,我想检查personMySQL 数据库的表中是否有记录,如果没有则创建一个。这应该是唯一可以添加新人员记录的时间。

我正在使用 Doctrine 包来处理数据库。我已经生成了一个Person实体,它本质上只是 Active Directory GUID 到自动递增主键的一对一映射。这是实体类:

namespace MyProject\PersonBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="person")
 */
class Person
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=16, unique=true, nullable=false)
     */
    protected $AD_guid;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set AD_guid
     *
     * @param string $aDGuid
     * @return Person
     */
    public function setADGuid($aDGuid)
    {
        $this->AD_guid = $aDGuid;

        return $this;
    }

    /**
     * Get AD_guid
     *
     * @return string 
     */
    public function getADGuid()
    {
        return $this->AD_guid;
    }
}

认为Person创建与登录操作耦合应该意味着Person没有得到 a PersonController(因为它从未出现过),或者可能PersonController不需要路由方向。但无论我有PersonController没有,我都不确定如何加入登录操作。建议?

4

1 回答 1

0

您如何验证用户身份?您是使用 LDAP 身份验证插件还是自己编写的?无论哪种方式,都有一个类和方法检查 LDAP 中的用户。钩子a)在这个类内部,b)在这个类的父调用之后。只需检查数据库中是否有条目,如果没有,则创建一个新的 Person(),设置数据并保存()。Person 是您的模型,可以在您需要的任何地方使用(尽管您应该尊重 MVC 模式)

于 2013-06-20T14:52:16.927 回答