管理面板的基于角色的用户权限系统


Role based user permission system for Admin Panel

大家好,我已经建立了一个管理面板,现在我必须根据哪个用户试图访问它来保护它。我需要php和mySQL中的一些内容,这样我就可以在代码中间检查用户(使用$_SESSION['thisUser'])是否有权修改或只查看某些内容。我需要它很容易,因为我不擅长构建php类。。不知道我可以称之为的东西

if( $user->hasPermission('write-news') ) 
   // write news

有什么帮助吗?提前感谢!

好的,我想我找到了一种更简单的方法来执行它。

我只制作了几个表(用户、角色、权限和连接两者的角色术语)。然后,我制作了一个php文件(包含在db-settings.php文件之后),该文件检索记录的用户的所有权限,并将其保存在数组中(从$_SESSION[]获取userId),并使用function hasPermission($Permission) {检查数组中给定的权限并返回true或false。每次我需要检查特定权限时,我都会把它称为

if(hasPermission("write-news")) {
    // let him write it
} else {
    // "you do not have permission, bye bye"
}

也许这不是建立基于角色的权限系统的正确方法,但它很简单,适合我的需要。不幸的是,我真的没有时间学习更好的系统是如何工作的。如果你对此有一些建议,我很有兴趣阅读。

好吧,如果您试图采用面向对象的方法,那么当然可以,但您需要确保您将拥有一个类文件,其中定义了hasPermission() for $user成员变量(很可能是用户类),该变量通过在$user上执行特定的查询来从数据库中获取值。

附言:如果你知道框架PHP方法,这将是有意义的。