• File: list-users.php
  • File size: 8.85 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * Get available folders for users
 */
$_USERS = $gateKeeper->getUsers();
$utenti = $_USERS;
$king = array_shift($utenti);

?>
<hr>
<div class="row">
    <div class="col-md-12">
        <div class="card">
            <div class="card-header d-flex align-items-center">
                <span><?php echo $setUp->getString("users"); ?></span>
            </div>
            <div class="card-body">
                <div class="table-responsive">
                    <table id="data-users" class="table table-hover table-condense">
                        <thead>
                            <tr>
                                <th><span class="sorta nowrap">ID</span></th>
                                <th><span class="sorta nowrap"><?php echo $setUp->getString("username"); ?></span></th>
                                <th><span class="sorta nowrap"><?php echo $setUp->getString("role"); ?></span></th>
                                <th><span class="sorta nowrap"><?php echo $setUp->getString("email"); ?></span></th>
                                <th><span class="nowrap"><?php echo $setUp->getString("user_folder"); ?></span></th>
                                <th><span class="nowrap"><?php echo $setUp->getString("available_space"); ?></span></th>
                                <th></th>
                                <th></th>
                                <?php
                                if (is_array($customfields)) {
                                    foreach ($customfields as $customkey => $customfield) {
                                        if (isset($customfield['list']) && $customfield['list'] === true) {
                                            ?>
                                            <th><span class="sorta nowrap"><?php echo $customfield['name']; ?></span></th>
                                            <?php
                                        }
                                    }
                                }
                                ?>
                            </tr>
                        </thead>
                        <tbody>
                            <?php

                            $current_user = $gateKeeper->getUsers();
                            /**
                             * LIST USERS
                             */
                            foreach ($utenti as $key => $user) {
                                if (strtolower($user['name']) === strtolower($gateKeeper->getUserName())) {
                                    continue;
                                }

                                $usermail = isset($user['email']) ? $user['email'] : '';
                                $userdirs = isset($user['dir']) ? json_decode($user['dir'], true) : false;
                                $disabled = isset($user['disabled']) ? $user['disabled'] : false;
                                $disabledLabel = $disabled ? '<span class="badge rounded-pill bg-danger">'.$setUp->getString("disabled").'</span>' : '';
                                $userquota = ($userdirs && isset($user['quota'])) ? $user['quota'] : '';
                                $printquota = strlen($userquota) > 0 ? $setUp->formatSize(($userquota*1024*1024)) : '';
                                $listuserdirs = false;

                                if ($userdirs) {
                                    $countuserdirs = count($userdirs);

                                    $listuserdirs = '('.$countuserdirs.')';

                                    if ($countuserdirs === 1) {
                                        $usrbasedir = str_replace('./', '', $setUp->getConfig('starting_dir'));
                                        $listuserdirs .= ' <a class="btn btn-link btn-sm" target="_blank" href="'.$setUp->getConfig('script_url').'?dir='.$usrbasedir.$userdirs[0].'"><i class="bi bi-folder-symlink"></i></a>';

                                    }
                                } ?>
                            <tr class="userrow">
                                <td><?php echo $key; ?></td>
                                <td><a class="usrblock" href="#" data-bs-toggle="modal" data-bs-target="#modaluser"><?php echo GateKeeper::getAvatar($user['name'], ''); ?> <?php echo $user['name']; ?></a></td>
                                <td><em><?php echo $setUp->getString("role_".$user['role']); ?></em></td>
                                <td><?php echo $usermail; ?></td>
                                <td><?php echo $listuserdirs; ?></td>
                                <td><?php echo $printquota; ?></td>
                                <td><?php echo $disabledLabel; ?></td>
                                <td>
                                    <button class="btn btn-link btn-sm py-0 usrblock" data-bs-toggle="modal" data-bs-target="#modaluser"><i class="bi bi-pencil-square"></i></button>
                                <?php
                                foreach ($user as $attr => $value) {
                                    if ($attr !== 'dir' && $attr !== 'pass') { ?>
                                    <input type="hidden" data-key="<?php echo $attr; ?>" value='<?php echo $value; ?>' class="send-userdata">
                                        <?php
                                    }
                                }
                                if ($userdirs) {
                                    foreach ($userdirs as $dir) {
                                        ?>
                                        <input type="hidden" value="<?php echo $dir; ?>" class="s-userfolders">
                                        <?php
                                    }
                                } ?>
                                </td>
                                <?php
                                if (is_array($customfields)) {
                                    foreach ($customfields as $customkey => $customfield) {
                                        if (isset($customfield['list']) && $customfield['list'] === true) {
                                            if (isset($customfield['multiple']) && $customfield['multiple'] === true) {
                                                $customval = isset($user[$customkey]) ? implode(', ', json_decode($user[$customkey])) : '';
                                            } else {
                                                $customval = isset($user[$customkey]) ? $user[$customkey] : '';
                                            }
                                            ?>
                                            <td><?php echo $customval; ?></td>
                                            <?php
                                        }
                                    }
                                }
                                ?>
                            </tr>
                                <?php
                            } ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>

<script type="text/javascript">
$(document).ready(function() {
    $('.avadefault').initial({fontWeight:200,seed:13});
    $('#data-users').DataTable({
        dom        : '<"table-controls-top"fl>rt<"table-controls-bottom"ip>',
        lengthMenu : [[25, 50, 100], [25, 50, 100]],
        order      : [[ 0, 'desc' ]],
        language : {
            emptyTable     : '--',
            info           : '_START_-_END_ / _TOTAL_ ',
            infoEmpty      : '',
            infoFiltered   : '',
            infoPostFix    : '',
            lengthMenu     : ' _MENU_',
            loadingRecords : '<div class="spinner-border" role="status"><span class="visually-hidden">Loading...</span></div>',
            processing     : '<div class="spinner-border" role="status"><span class="visually-hidden">Loading...</span></div>',
            search         : '<i class="bi bi-search"></i> ',
            zeroRecords    : '--',
            paginate : {
                first    : '<i class="bi bi-chevron-double-left"></i>',
                last     : '<i class="bi bi-chevron-double-right"></i>',
                previous : '<i class="bi bi-chevron-left"></i>',
                next     : '<i class="bi bi-chevron-right"></i>'
            }
        },
        columnDefs : [ 
            { 
                targets : [ 0 ], 
                searchable : false
            },
            { 
                targets : [2, 4, 5, 6, 7], 
                orderable  : false,
                searchable : false
            }
        ],

        initComplete : function() {
            $('#data-users_wrapper div.dataTables_length').addClass('ms-auto');
            $('#data-users_wrapper .table-controls-top').addClass('d-flex w-100 mb-3');
            $('#data-users_wrapper .table-controls-bottom').addClass('d-flex w-100');
            $('#data-users_wrapper .dataTables_paginate').addClass('ms-auto');
        }

    });
});
</script>