/** * Удалить группу (группы) * * @param mixed (int or array) PermissionGroup ID * @return array массив с удаленныи группами */ function nc_usergroup_delete($PermissionGroupID) { global $db; $ret = array(); // возвращаемое значение if (!$PermissionGroupID) { return 0; } // если массиив - то каждую группу удаляем по отдельности if (is_array($PermissionGroupID) && !empty($PermissionGroupID)) { foreach ($PermissionGroupID as $grpID) { $tmp = nc_usergroup_delete($grpID); // если удаление произошло - запишем номер удаленной группы в результат if (!empty($tmp)) { $ret[] = $tmp[0]; } } } else { // сообственно, удалить группу // получим всех пользователей группы $users = nc_usergroup_get_users_from_group($PermissionGroupID); // нельзя удалить группу, если есть пользователь, который состоит только в этой группе if (!empty($users)) { $query = "SELECT COUNT(`ID`) FROM `User_Group` WHERE `User_ID` IN (" . join(',', $users) . ") GROUP BY `User_ID`"; // есть пользователь, который состоит только в этой группе - удалить нельзя if (in_array(1, $db->get_col($query))) { return 0; } } // удаление группы foreach ((array) $users as $user_id) { nc_usergroup_remove_from_group($user_id, $PermissionGroupID); } // удаление из таблицы-связки $db->query("DELETE FROM `User_Group` WHERE `PermissionGroup_ID` = '" . intval($PermissionGroupID) . "'"); // удаление из таблицы с группами $db->rows_affected = 0; $db->query("DELETE FROM `PermissionGroup` WHERE `PermissionGroup_ID` = '" . intval($PermissionGroupID) . "'"); if ($db->rows_affected) { $ret[0] = $PermissionGroupID; } } return $ret; }
function GroupList() { global $db, $ROOT_FOLDER; global $Email; global $srchPat; global $systemTableID, $systemMessageID, $systemTableName, $ADMIN_TEMPLATE; $Result = $db->get_results("select PermissionGroup_ID, PermissionGroup_Name from PermissionGroup ", ARRAY_N); ?> <form method=post action=group.php> <table border=0 cellpadding=0 cellspacing=0 width=100%> <tr> <td> <table class='nc-table nc--striped nc--small' width='100%'> <tr> <th>ID</th> <th width='80%'><?php echo CONTROL_USER_GROUP; ?> </th> <th class='nc-text-center'><?php echo CONTROL_USER_RIGHTS; ?> </th> <th class='nc-text-center'><i class='nc-icon nc--remove' title='<?php echo CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWCATALOGUELIST_DELETE; ?> '></i></th> </tr> <?php foreach ($Result as $Array) { print "\n <tr>\n <td>" . $Array[0] . "</td>\n <td><a href=\"group.php?phase=3&PermissionGroupID=" . $Array[0] . "\">" . $Array[1] . "</a></td>\n <td align=center><a href=\"group.php?phase=8&PermissionGroupID=" . $Array[0] . "\"><i class='nc-icon nc--settings nc--hovered' title='" . CONTROL_USER_CHANGERIGHTS . "'></i></a></td>"; // можно или нет удалть группу $confirmGroupDelete = true; $users = nc_usergroup_get_users_from_group($Array[0]); if (!empty($users)) { $query = "SELECT COUNT(`ID`) FROM `User_Group` WHERE `User_ID` IN (" . join(',', $users) . ") GROUP BY `User_ID`"; if (in_array(1, $db->get_col($query))) { $confirmGroupDelete = false; } } if ($confirmGroupDelete) { print "\n <td align=center>" . nc_admin_checkbox_simple("Delete" . $Array[0], $Array[0]) . "</td>"; } else { print "\n <td align=center></td>"; } print "\n </tr>"; } ?> </table> </td> </tr> </table><br> <?php global $UI_CONFIG; $UI_CONFIG->actionButtons[] = array("id" => "submit", "caption" => NETCAT_ADMIN_DELETE_SELECTED, "action" => "nc_print_custom_modal_callback(function(){mainView.submitIframeForm();})", "red_border" => true); $UI_CONFIG->actionButtons[] = array("id" => "adduser", "caption" => CONTROL_USER_ADDNEWGROUP, "align" => "left", "location" => "usergroup.add()"); ?> <input type='hidden' name=phase VALUE=2> <input type='submit' class='hidden'> </form> <?php }