Bug 47645

Summary: Некорректно работает Замена ярлыка для нового пользователя
Product: Sisyphus Reporter: Vera Blagoveschenskaya <vercha>
Component: gpupdateAssignee: Valery Sinelnikov <greh>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: alimektor, august, glinkinvd, greh, nir, sin
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Настройка в gpui
none
4 ярлыка
none
Логи none

Description Vera Blagoveschenskaya 2023-09-19 18:31:42 MSK
Created attachment 14480 [details]
Настройка в gpui

Стенд
-   ALT Server в качестве Samba DC
-   ALT Workstation в качестве клиента

Версия: gpupdate-0.9.12.6-alt1

1.  В GPUI включить поддержку экспериментальных групповых политик и
    дополнительные политики:

    1.  Компьютер -> Административные шаблоны -> Система ALT ->
        Групповые политики -> Экспериментальные групповые политики ->
        Включено
    2.  Компьютер -> Административные шаблоны -> Система ALT ->
        Групповые политики -> Механизмы GPUpdate:
        -   Управление ярлычками -> Включено
            -   Управление ярлычками для пользователей -> Включено

2.  На другом клиенте в GPUI открыть раздел Компьютер - Настройки -
    Настройки системы - Значки

3.  ПКМ на пустом поле справа - Новый - Значок

4.  Настроить ярлык:
    - Действие: Создать
    - Название: Запуск firefox
    - Тип цели: Объект файловой системы
    - Место нахождения: Рабочий стол
    - Целевой путь: /usr/bin/firefox
    - Запуск: Свернутый
    - Комментарий: тестовый ярлык для компьютера
Нажать OK

5. Двойной клик на созданном ранее ярлыке, изменить следующие параметры:

    - Действие: Заменить
    - Название: firefox-change 
    - Запуск: Увеличенное
Нажать OK
Повторить шаг несколько раз (например, 3 раза).

6. Перезагрузить клиентскую систему, авторизоваться НОВЫМ доменным пользователем (предварительно создать на сервере # samba-tool user add newuser)

Результат: На рабочем столе отображается 4 иконки firefox - см. скрин.

Ожидаемый результат: Для нового пользователя отображается только один вариант ярлыка: последний.
Comment 1 Vera Blagoveschenskaya 2023-09-19 18:32:06 MSK
Created attachment 14481 [details]
4 ярлыка
Comment 2 Vera Blagoveschenskaya 2023-09-19 18:32:24 MSK
Created attachment 14482 [details]
Логи
Comment 3 Vladislav Glinkin 2025-04-17 15:52:36 MSK
Версия: gpupdate-0.13.2-alt1

В gpoa/gpt/shortcuts.py есть метод:
    def apply_desktop(self, dest):
        '''
        Apply .desktop file by action.
        '''
        if self.action == 'U':
            self._write_desktop(dest, read_firstly=True)
        elif self.action == 'D':
            self._remove_desktop(dest)
        elif self.action == 'R':
            self._remove_desktop(dest)
            self._write_desktop(dest)
        elif self.action == 'C':
            self._write_desktop(dest, create_only=True)


При замене метод .apply_desktop оперирует параметром dest, который считывается из SHORTCUTS.XML.
Предыдущее значение не хранится, в результате чего при замене метод ._remove_desktop ничего не делает.

Полагаю, что следует пересмотреть логику работы и оперировать вводными данными из dconf. Там предыдущее значение хранится в Previous/Software/BaseALT/Policies/Preferences/testuser