English 中文(简体)
活动协调器中的模块动作权限
原标题:Module action permissions in activecollab

我正在开发活性collab 定制模块, 遇到权限问题; 在“ on_ system_ permissions.php” 处理器的帮助下, 我添加了权限 。 但问题是, 我怎样才能在用户登录的代码上检查是否允许特定操作 。

我从活动室其他模块得到低于代码的代码:

class Role extends FwRole implements IHomescreen {

..
..

    function isPeopleManager(){

       $this->getPermissionValue( can_manage_people );

    }
...
...

}

这是检查任何行动的许可吗? 还是它只是回报了这个行动的价值?

在以上类中,他们使用 < 坚固 > $This- gt; , 并以 < 坚固 > FwRole 扩展一个类。 当我使用 < code> FwRole::: getPermissionValue( can_ manage_ people) ; 返回时, 它给了我$this and 对象的错误 。

因此我的问题是, 我们如何在代码中检查特定行动的许可, 以及如何使用 GetPermissionValue () 功能获取许可 。

最佳回答

当您有一个用户实例时, 您可以通过执行 < code> getSystemPermission 方法, 检查该用户是否有设定为是的特定权限 :

$user = Users::findById(12);

if($user instanceof User) {
  if($user->getSystemPermission( my_permission )) {
    print  My permission set to Yes ;
  } else {
    print  My permission set to No ;
  } // if
} // if

请注意, 活动Collab 权限级联( 可以互相依赖) 。 如果您有依赖的许可, 系统还会检查您是否拥有设定为“ 是”的父权权限, 而不仅仅是这个权限( 例如, 如果您没有 < code> system_ access 权限, 因为它取决于此权限, 系统将返回虚假的 < code > manage_ project 权限 ) 。

<强 > 更新

权限串联已引入 活动Collab 3 中!

问题回答

错误是指您调用 $ this, 但您不在对象上下文中, 这是因为您在“ 坚固的” 上下文中调用方法 < code> getPermissionValue .

在您的代码中,您调用 FwRole:: getPermissionValue ( can_manage_people); 您必须这样做:

$role = new FwRole; // if it needs a parameter in constructor, call it like new FwRole($param);
$permission_value = $role->getPermissionValue( permission );

通过创建类 FwRole 实例,您创建了 FwRole 对象。 因此您处于对象上下文中, 错误( 您提供的) 已经不存在 。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签