예제 #1
0
파일: user.inc.php 프로젝트: Blu2z/implsk
/**
 * Удалить группу (группы)
 *
 * @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;
}
예제 #2
0
/**
 * Удалить группы с прорисовкой дерева
 *
 */
function DeleteGroups()
{
    global $db, $UI_CONFIG;
    $deletedGroup = array();
    // удаленные группы
    $grp = array();
    // группы, которые хотят удалить
    // соберем в массив все группы
    while (list($key, $val) = each($_POST)) {
        if (substr($key, 0, 6) == "Delete") {
            $grp[] = $val;
        }
    }
    // если групп нет - ошибка
    if (empty($grp)) {
        nc_print_status(CONTROL_USER_FUNCS_ERR_CANTREMGROUP, 'error', $Array);
        exit;
    }
    // сообственно, удаление
    $deletedGroup = nc_usergroup_delete($grp);
    // перерисовка дерева
    if (!empty($deletedGroup)) {
        foreach ($deletedGroup as $v) {
            $UI_CONFIG->treeChanges['deleteNode'][] = "usergroup-" . $v;
        }
    }
}