Urejen pregled in dodajanje dodeljenih uporabnikov za admine (po novem lahko dodajajo in brisejo dodeljene uporabnike drugim uporabnikom)

This commit is contained in:
pero1203 2021-03-02 09:59:52 +01:00
parent fa9dbb0880
commit 6ee43bd9d1
9 changed files with 275 additions and 42 deletions

View File

@ -8353,6 +8353,7 @@ class SurveyAdminSettings {
echo '<th>' . $lang['srv_survey_list_users_aai'] . '</th>';
echo '<th>' . $lang['srv_survey_list_users_survey_count'] . '</th>';
echo '<th>' . $lang['srv_survey_list_users_survey_archive_count'] . '</th>';
echo '<th>' . $lang['srv_manager_count'] . '</th>';
echo '<th>' . $lang['users_gdpr_title'] . '</th>';
echo '<th>' . $lang['srv_survey_list_users_registred'] . '</th>';
echo '<th>' . $lang['srv_survey_list_users_last_login'] . '</th>';

View File

@ -193,61 +193,69 @@ class Dostop {
return FALSE;
}
function ajax()
{
function ajax(){
if ($_GET['a'] == 'manager_add_user') {
$this->ajax_manager_add_user();
} elseif($_GET['a'] == 'add_new_user'){
}
elseif($_GET['a'] == 'add_new_user'){
$this->ajax_add_new_user();
} elseif ($_GET['a'] == 'anketa_user_dostop') {
}
elseif ($_GET['a'] == 'anketa_user_dostop') {
$this->ajax_anketa_user_dostop();
} elseif ($_GET['a'] == 'anketa_user_dostop_save') {
}
elseif ($_GET['a'] == 'anketa_user_dostop_save') {
$this->ajax_anketa_user_dostop_save();
} elseif ($_GET['a'] == 'edit_user') {
}
elseif ($_GET['a'] == 'edit_user') {
$this->ajax_edit_user();
} elseif ($_GET['a'] == 'edit_user_save') {
}
elseif ($_GET['a'] == 'edit_user_save') {
$this->ajax_edit_user_save();
} elseif ($_GET['a'] == 'admin_add_user') {
}
elseif ($_GET['a'] == 'admin_add_user') {
$this->ajax_admin_add_user();
} elseif($_GET['a'] == 'find_user'){
}
elseif ($_GET['a'] == 'admin_add_user_popup') {
$this->ajax_admin_add_user_popup();
}
elseif($_GET['a'] == 'find_user'){
$this->ajax_find_user();
} elseif ($_GET['a'] == 'edit_remove_user') {
}
elseif ($_GET['a'] == 'edit_remove_user') {
$this->ajax_edit_remove_user();
} elseif ($_GET['a'] == 'edit_remove_user_manager') {
}
elseif ($_GET['a'] == 'edit_remove_user_manager') {
$this->ajax_edit_remove_user_manager();
} elseif ($_GET['a'] == 'all_users_list') {
if ($_GET['m'] == 'delete') {
}
elseif ($_GET['a'] == 'edit_remove_user_admin') {
$this->ajax_edit_remove_user_admin();
}
elseif ($_GET['a'] == 'all_users_list') {
if ($_GET['m'] == 'delete') {
$this->ajax_all_users_list_delete();
}
if ($_GET['m'] == 'ban') {
$this->ajax_all_users_list_ban();
}
else {
$this->ajax_all_users_list();
}
} elseif($_GET['a'] == 'my_users_list'){
}
elseif($_GET['a'] == 'my_users_list'){
$this->ajax_all_users_list_my();
} elseif ($_GET['a'] == 'delete_users_list') {
}
elseif ($_GET['a'] == 'delete_users_list') {
$this->ajax_delete_users_list();
} elseif ($_GET['a'] == 'unsigned_users_list') {
}
elseif ($_GET['a'] == 'unsigned_users_list') {
$this->ajax_unsigned_users_list();
} elseif ($_GET['a'] == 'unconfirmed_mail_user_list') {
if ($_GET['m'] == 'delete') {
}
elseif ($_GET['a'] == 'unconfirmed_mail_user_list') {
if ($_GET['m'] == 'delete') {
$this->ajax_unconfirmed_mail_user_list_delet_user();
}
elseif ($_GET['m'] == 'accept') {
@ -257,6 +265,9 @@ class Dostop {
$this->ajax_unconfirmed_mail_user_list();
}
}
elseif ($_GET['a'] == 'dodeljeni_uporabniki_display') {
$this->ajax_dodeljeni_uporabniki_display();
}
}
/**
@ -978,6 +989,30 @@ class Dostop {
header("Location: index.php?a=diagnostics&t=uporabniki".($error !== FALSE ? '&error='.$error : ''));
}
/**
* Admin: dodajanje obstojecih uporabnikov drugemu uporabniku v popupu
*
*/
function ajax_admin_add_user_popup(){
global $lang;
global $admin_type;
if ($admin_type != 0)
return;
$manager = (isset($_POST['manager'])) ? $_POST['manager'] : '0';
$user = (isset($_POST['user'])) ? $_POST['user'] : '0';
if($manager == '' || $manager == '0' || $user == '' || $user == '0')
return;
$sql = sisplet_query("INSERT INTO srv_dostop_manage (manager, user) VALUES ('".$manager."', '".$user."')");
if (!$sql)
echo mysqli_error($GLOBALS['connect_db']);
$this->ajax_dodeljeni_uporabniki_display();
}
/**
* Poiščemo uporabnika, ki je v bazi
*/
@ -1026,8 +1061,7 @@ class Dostop {
* odstrani uporabnika iz nadzora
*
*/
function ajax_edit_remove_user()
{
function ajax_edit_remove_user(){
global $global_user_id;
global $site_url;
@ -1042,8 +1076,7 @@ class Dostop {
* odstrani uporabnika iz managerjevega nadzora
*
*/
function ajax_edit_remove_user_manager()
{
function ajax_edit_remove_user_manager(){
global $global_user_id;
global $site_url;
@ -1054,6 +1087,27 @@ class Dostop {
header("Location: " . $site_url . "admin/survey/index.php?a=diagnostics&t=uporabniki");
}
/**
* admin odstrani uporabnika iz nadzora drugemu uporabniku (managerju ali adminu)
*
*/
function ajax_edit_remove_user_admin(){
global $admin_type;
if($admin_type != '0')
return;
$manager = (isset($_POST['manager'])) ? $_POST['manager'] : '0';
$user = (isset($_POST['user'])) ? $_POST['user'] : '0';
if($manager == '' || $manager == '0' || $user == '' || $user == '0')
return;
$sql = sisplet_query("DELETE FROM srv_dostop_manage WHERE user='$user' AND manager='$manager'");
$this->ajax_dodeljeni_uporabniki_display();
}
/**
* Seznam vseh uporabnikov znotrja 1ke
*/
@ -1072,10 +1126,11 @@ class Dostop {
}
// Pridobimo vse uporabnike
$sql = "SELECT u.id as id, u.type as type, u.status, u.email as email, u.name as name, u.surname as surname, u.lang as lang, u.eduroam as aai, date_format(u.when_reg, '%d.%m.%Y') as registriran, u.gdpr_agree as gdpr_agree, d1.dostop_survey_count as st_anket, d2.dostop_survey_archive as st_arhivskih, date_format(u.last_login, '%d.%m.%Y') as last_login, ue.email as second_email FROM users AS u ".
" LEFT OUTER JOIN ( SELECT srv_dostop.ank_id, srv_dostop.uid, count(*) AS dostop_survey_count FROM srv_dostop, srv_anketa WHERE srv_anketa.id=srv_dostop.ank_id AND srv_anketa.backup='0' GROUP BY srv_dostop.uid ) AS d1 ON d1.uid = u.id ".
" LEFT OUTER JOIN ( SELECT srv_dostop.ank_id, srv_dostop.uid, count(*) AS dostop_survey_archive FROM srv_dostop, srv_anketa WHERE srv_anketa.id=srv_dostop.ank_id AND srv_anketa.backup>'0' GROUP BY srv_dostop.uid ) AS d2 ON d2.uid = u.id ".
" LEFT OUTER JOIN (SELECT user_emails.email, user_emails.user_id FROM user_emails WHERE active=1) AS ue ON ue.user_id = u.id".
$sql = "SELECT u.id as id, u.type as type, u.status, u.email as email, u.name as name, u.surname as surname, u.lang as lang, u.eduroam as aai, date_format(u.when_reg, '%d.%m.%Y') as registriran, u.gdpr_agree as gdpr_agree, dm.st_dodeljenih_uporabnikov as st_dodeljenih_uporabnikov, d1.dostop_survey_count as st_anket, d2.dostop_survey_archive as st_arhivskih, date_format(u.last_login, '%d.%m.%Y') as last_login, ue.email as second_email FROM users AS u ".
" LEFT OUTER JOIN (SELECT srv_dostop.ank_id, srv_dostop.uid, count(*) AS dostop_survey_count FROM srv_dostop, srv_anketa WHERE srv_anketa.id=srv_dostop.ank_id AND srv_anketa.backup='0' GROUP BY srv_dostop.uid ) AS d1 ON d1.uid = u.id ".
" LEFT OUTER JOIN (SELECT srv_dostop.ank_id, srv_dostop.uid, count(*) AS dostop_survey_archive FROM srv_dostop, srv_anketa WHERE srv_anketa.id=srv_dostop.ank_id AND srv_anketa.backup>'0' GROUP BY srv_dostop.uid ) AS d2 ON d2.uid = u.id ".
" LEFT OUTER JOIN (SELECT srv_dostop_manage.manager, count(*) AS st_dodeljenih_uporabnikov FROM srv_dostop_manage GROUP BY srv_dostop_manage.manager) AS dm ON dm.manager = u.id ".
" LEFT OUTER JOIN (SELECT user_emails.email, user_emails.user_id FROM user_emails WHERE active=1) AS ue ON ue.user_id = u.id".
" WHERE u.email NOT LIKE ('D3LMD-%') AND u.email NOT LIKE ('UNSU8MD-%') ".$iskanjeSql;
// Filtri, ki jih datatables pošilja in po katerih filtriramo
@ -1088,12 +1143,13 @@ class Dostop {
"u.eduroam", //AAI
"d1.dostop_survey_count", //st_anket
"d2.dostop_survey_archive", //st_arhivskih
"dm.st_dodeljenih_uporabnikov", //st_dodeljenih_uporabnikov
"u.gdpr_agree",
"u.when_reg",
"u.last_login"
];
if($_POST['order'][0]['column'] == 7){
if($_POST['order'][0]['column'] == 8){
$vrednost='u.gdpr_agree desc';
if($_POST['order'][0]['dir'] == 'asc'){
@ -1133,6 +1189,7 @@ class Dostop {
(!empty($uporabnik->aai) ? $this->vrniDaNe($uporabnik->aai) : $lang['no1']),
(!empty($uporabnik->st_anket) ? $uporabnik->st_anket : 0),
(!empty($uporabnik->st_arhivskih) ? $uporabnik->st_arhivskih : 0),
'<a href="#" onclick="dodeljeni_uporabniki_display(\''.$uporabnik->id.'\'); return false;" title="'.$lang['srv_manager_manager'].'">'.(!empty($uporabnik->st_dodeljenih_uporabnikov) ? $uporabnik->st_dodeljenih_uporabnikov : 0).'</a>',
$lang["users_gdpr".$uporabnik->gdpr_agree],
$uporabnik->registriran,
$uporabnik->last_login,
@ -1549,6 +1606,75 @@ class Dostop {
]);
}
private function ajax_dodeljeni_uporabniki_display(){
global $lang;
$manager = (isset($_POST['manager'])) ? $_POST['manager'] : '0';
if($manager == '' || $manager == '0'){
return;
}
echo '<div class="popup_close"><a href="#" onClick="dodeljeni_uporabniki_close(); return false;">✕</a></div>';
echo '<h2>'.$lang['srv_manager_count'].'</h2>';
echo '<div class="popup_content dodeljeni_uporabniki">';
// Seznam dodeljenih uporabnikov
$sqlUsers = sisplet_query("SELECT u.id, u.name, u.surname, u.email
FROM users u, srv_dostop_manage m
WHERE u.id=m.user AND m.manager='".$manager."'
");
if(mysqli_num_rows($sqlUsers) > 0){
echo '<ul>';
while($rowUsers = mysqli_fetch_array($sqlUsers)){
echo '<li>';
echo ' <span>'.$rowUsers['name'].' '.$rowUsers['surname'].' ('.$rowUsers['email'].')</span>';
echo ' <span><a onClick="dodeljeni_uporabniki_remove(\''.$manager.'\', \''.$rowUsers['id'].'\');">'.$lang['hour_remove'].'</a></span>';
echo '</li>';
}
echo '</ul>';
}
// Dodajanje novega uporabnika
echo '<h4>'.$lang['srv_manager_add_admin'].'</h4>';
echo '<div class="add_user">';
echo '<form class="manager_add_user" name="admin_add_dostop" action="ajax.php?t=dostop&a=admin_add_user" method="post">';
echo '<h3><b>'.$lang['srv_manager_add_user2'].'</b></h3>';
echo '<p><select name="add_user_id" id="add_user_id" class="js-obstojeci-uporabniki-admin-ajax" style="width: 300px;"></select></p>';
echo '<p><div class="buttonwrapper floatLeft">';
echo ' <a class="ovalbutton ovalbutton_orange" href="#" onClick="dodeljeni_uporabniki_add(\''.$manager.'\', \''.$rowUsers['id'].'\');">'.$lang['add'].'</a>';
echo '</div></p><br><br>';
echo '</form>';
echo '<script>$(\'.js-obstojeci-uporabniki-admin-ajax\').select2({
minimumInputLength: 3,
ajax: {
url: \'ajax.php?t=dostop&a=find_user\',
dataType: \'json\'
}
});</script>';
echo '</div>';
echo '</div>';
echo '<div class="buttons_holder">';
echo '<span class="buttonwrapper floatRight" title="'.$lang['srv_zapri'].'"><a class="ovalbutton ovalbutton_gray" href="#" onclick="dodeljeni_uporabniki_close(); return false;"><span>'.$lang['srv_zapri'].'</span></a></span>';
echo '</div>';
}
function isAnketar()
{
global $admin_type;

View File

@ -39,6 +39,33 @@ function edit_user_close() {
$('#fade').fadeOut('slow');
}
function dodeljeni_uporabniki_display(manager) {
$('#fade').fadeTo('slow', 1);
$('#vrednost_edit').addClass('dodeljeni_uporabniki').show().load('ajax.php?t=dostop&a=dodeljeni_uporabniki_display', {manager: manager});
}
function dodeljeni_uporabniki_close() {
$('#vrednost_edit').removeClass('dodeljeni_uporabniki').hide().html('');
$('#fade').fadeOut('slow');
//location.reload();
}
function dodeljeni_uporabniki_remove(manager, user) {
if (confirm(lang['srv_manager_remove_alert'])){
$('#vrednost_edit').load('ajax.php?t=dostop&a=edit_remove_user_admin', {manager: manager, user: user});
}
}
function dodeljeni_uporabniki_add(manager, user) {
var user = $('#add_user_id').val();
$('#vrednost_edit').load('ajax.php?t=dostop&a=admin_add_user_popup', {manager: manager, user: user});
}
function dostop_language(chk) {
var edit = $('#edit').is(':checked');
@ -226,7 +253,7 @@ $(document).ready(function () {
tabelaDataTables = $('#all_users_list').DataTable({
lengthMenu: [[50, 500, 1000, 5000, 10000], [50, 500, 1000, 5000, 10000]],
select: true,
order: [[ 9, "desc" ]],
order: [[ 10, "desc" ]],
lengthChange: true,
serverSide: true,
ajax: {

View File

@ -191,6 +191,7 @@ lang('srv_delete_testdata_warning');
lang('srv_alert_upload_size');
lang('srv_alert_upload_ext');
lang('srv_trans_lang');
lang('srv_manager_remove_alert');
//LOKACIJA

View File

@ -5626,6 +5626,9 @@ $lang = array (
"srv_manager_add_user4" => '<span style="color: gray; font-size:80%; font-weight:normal">Uporabnik bo obveščen na e-mail</span>',
"srv_manager_rem_user2" => 'Odstranite uporabnika iz svojega pregleda',
"srv_manager_manager" => 'Uporabniki, ki imajo managerski pregled nad vašimi anketami',
"srv_manager_count" => 'Dodeljeni uporabniki',
"srv_manager_remove_alert" => 'Ste prepričani, da želite odstraniti uporabnika iz pregleda?',
"srv_manager_add_admin" => 'Dodaj uporabnika v pregled',
"create" => 'Ustvari',
"create_add" => 'Ustvari in dodaj',
"srv_library_left" => 'Standardna vprašanja lahko dodajate v anketo',

View File

@ -5523,6 +5523,9 @@ $lang = array (
"srv_manager_add_user4" => '<span style="color: gray; font-size:80%; font-weight:normal">User will be notified with an e-mail</span>',
"srv_manager_rem_user2" => 'Remove user',
"srv_manager_manager" => 'Users with managing view of your surveys',
"srv_manager_count" => 'Managed users',
"srv_manager_remove_alert" => 'Are you sure you would like to remove user from managing?',
"srv_manager_add_admin" => 'Add user to managing',
"create" => 'Create',
"create_add" => 'Create and add',
"srv_library_left" => '',

View File

@ -11409,6 +11409,36 @@ and open the template in the editor.
text-align: center;
}
.popup_content.dodeljeni_uporabniki ul {
overflow: auto;
max-height: 60vh;
padding: 10px;
margin: 0 0 20px 0;
list-style-type: none;
background-color: #f0f7fd;
border: 1px solid #d5e9fa;
}
.popup_content.dodeljeni_uporabniki ul li {
display: flex;
justify-content: space-between;
line-height: 24px;
padding: 0 5px;
}
.popup_content.dodeljeni_uporabniki ul li:hover {
background-color: #d5e9fa;
}
.popup_content.dodeljeni_uporabniki h4 {
margin: 0 0 5px 0;
}
.popup_content.dodeljeni_uporabniki .add_user {
box-sizing: border-box;
width: 100%;
padding: 10px;
margin-bottom: 50px;
background-color: #f0f7fd;
border: 1px solid #d5e9fa;
}
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates

View File

@ -0,0 +1,41 @@
.popup_content.dodeljeni_uporabniki{
ul{
overflow: auto;
max-height: 60vh;
padding: 10px;
margin: 0 0 20px 0;
list-style-type: none;
background-color: $strong_blue_super_light;
border: 1px solid $strong_blue_very_lighten;
li{
display: flex;
justify-content: space-between;
line-height: 24px;
padding: 0 5px;
&:hover{
background-color: $strong_blue_very_lighten;
}
}
}
h4{
margin: 0 0 5px 0;
}
.add_user{
box-sizing: border-box;
width: 100%;
padding: 10px;
margin-bottom: 50px;
background-color: $strong_blue_super_light;
border: 1px solid $strong_blue_very_lighten;
}
}

View File

@ -19,3 +19,4 @@
@import "archive";
@import "preview_question";
@import "consulting";
@import "dodeljeni_uporabniki";