HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: //usr/local/plugin/user_set/synology_foto_user_set.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright (c) 2000 - present Synology Inc. All rights reserved.

from os import environ
from importlib.util import spec_from_file_location, module_from_spec

module_name = "common"
module_path = "/var/packages/SynologyPhotos/target/sdk-plugin/common.py"
spec = spec_from_file_location(module_name, module_path)
common = module_from_spec(spec)
spec.loader.exec_module(common)


class UserSet(common.PluginRunner):
    # @override
    def post(self):
        if "0" != environ.get("RESULT"):
            return None

        send_reload_priv = False
        rename_user = []
        new_user = []
        exprie_change_user = []

        n_items = int(environ.get("NITEMS"))

        for i in range(1, n_items + 1):
            uid = environ.get("UID_{}".format(i))
            user_name = environ.get("USER_NAME_{}".format(i))
            origin_user_name = environ.get("ORIGIN_USER_NAME_{}".format(i))
            expire_state = environ.get("EXPIRE_STATE_{}".format(i))
            result = environ.get("USER_OP_RESULT_{}".format(i))

            if user_name != origin_user_name and origin_user_name is not None:
                rename_user.append(
                    {
                        "uid": uid,
                        "user_name": user_name,
                        "origin_user_name": origin_user_name,
                    }
                )

            if origin_user_name is None:
                new_user.append(uid)
                send_reload_priv = True


            if expire_state != "unchanged":
                exprie_change_user.append(
                    {"uid": uid, "enable": expire_state == "enabled"}
                )
                send_reload_priv = True

        if len(rename_user) > 0:
            self.send_command("user-rename", rename_user)

        if len(exprie_change_user) > 0:
            self.send_command("user-enable-change", exprie_change_user)

        if len(new_user) > 0:
            self.send_command("user-add", {"uid": new_user,})

        if send_reload_priv:
            self.send_command("reload-app-priv")


common.MainBody(UserSet())