Kimai_Database_Mysql::checkMembershipPermission PHP Method

checkMembershipPermission() public method

Check if a user is allowed to access an object for a given action.
public checkMembershipPermission ( integer $userId, array $objectGroups, string $permission, string $requiredFor = 'all' ) : boolean
$userId integer the ID of the user
$objectGroups array list of group IDs of the object to check
$permission string name of the permission to check for
$requiredFor string (all|any) whether the permission must be present for all groups or at least one
return boolean
    public function checkMembershipPermission($userId, $objectGroups, $permission, $requiredFor = 'all')
    {
        $userGroups = $this->getGroupMemberships($userId);
        $commonGroups = array_intersect($userGroups, $objectGroups);
        if (count($commonGroups) == 0) {
            return false;
        }
        foreach ($commonGroups as $commonGroup) {
            $roleId = $this->user_get_membership_role($userId, $commonGroup);
            if ($requiredFor == 'any' && $this->membership_role_allows($roleId, $permission)) {
                return true;
            }
            if ($requiredFor == 'all' && !$this->membership_role_allows($roleId, $permission)) {
                return false;
            }
        }
        return $requiredFor == 'all';
    }
Kimai_Database_Mysql