Kimai_Database_Mysql::global_roles PHP Method

global_roles() public method

public global_roles ( ) : array | boolean
return array | boolean
    public function global_roles()
    {
        $p = $this->kga['server_prefix'];
        $query = "SELECT a.*, COUNT(b.globalRoleID) AS count_users FROM `{$p}globalRoles` a LEFT JOIN `{$p}users` b USING(globalRoleID) GROUP BY a.globalRoleID";
        $result = $this->conn->Query($query);
        if ($result == false) {
            $this->logLastError('global_roles');
            return false;
        }
        $rows = $this->conn->RecordsArray(MYSQLI_ASSOC);
        return $rows;
    }

Usage Example

Beispiel #1
0
/**
 * @param Kimai_Database_Mysql $database
 * @param array $kgaUser
 * @param bool $viewOtherGroupsAllowed
 * @return array
 */
function getEditUserList(Kimai_Database_Mysql $database, $kgaUser, $viewOtherGroupsAllowed)
{
    $users = array();
    $showDeletedUsers = get_cookie('adminPanel_extension_show_deleted_users', 0);
    if ($database->global_role_allows($kgaUser['globalRoleID'], 'core-user-otherGroup-view')) {
        $dbUsers = $database->get_users($showDeletedUsers);
    } else {
        $dbUsers = $database->get_users($showDeletedUsers, $kgaUser['groups']);
    }
    $roles = $database->global_roles();
    foreach ($dbUsers as $user) {
        $user['globalRoleName'] = 'Unknown (' . $user['globalRoleID'] . ')';
        foreach ($roles as $role) {
            if ($role['globalRoleID'] == $user['globalRoleID']) {
                $user['globalRoleName'] = $role['name'];
                break;
            }
        }
        $user['groups'] = array();
        $groups = $database->getGroupMemberships($user['userID']);
        if (is_array($groups)) {
            foreach ($groups as $group) {
                if (!$viewOtherGroupsAllowed && array_search($group, $kgaUser['groups']) === false) {
                    continue;
                }
                $groupData = $database->group_get_data($group);
                $user['groups'][] = $groupData['name'];
            }
        }
        $users[] = $user;
    }
    return $users;
}
Kimai_Database_Mysql