Code Duplication    Length = 93-98 lines in 2 locations

gvm/protocols/gmpv214/gmpv214.py 1 location

@@ 61-153 (lines=93) @@
58
        # Is authenticated on gvmd
59
        self._authenticated = False
60
61
    def modify_user(
62
        self,
63
        user_id: str = None,
64
        *,
65
        name: Optional[str] = None,
66
        comment: Optional[str] = None,
67
        password: Optional[str] = None,
68
        auth_source: Optional[UserAuthType] = None,
69
        role_ids: Optional[List[str]] = None,
70
        hosts: Optional[List[str]] = None,
71
        hosts_allow: Optional[bool] = False,
72
        ifaces: Optional[List[str]] = None,
73
        ifaces_allow: Optional[bool] = False,
74
        group_ids: Optional[List[str]] = None,
75
    ) -> Any:
76
77
        """Modifies an existing user. Most of the fields need to be supplied
78
        for changing a single field even if no change is wanted for those.
79
        Else empty values are inserted for the missing fields instead.
80
81
        Arguments:
82
            user_id: UUID of the user to be modified.
83
            name: The new name for the user.
84
            comment: Comment on the user.
85
            password: The password for the user.
86
            auth_source: Source allowed for authentication for this user.
87
            roles_id: List of roles UUIDs for the user.
88
            hosts: User access rules: List of hosts.
89
            hosts_allow: Defines how the hosts list is to be interpreted.
90
                If False (default) the list is treated as a deny list.
91
                All hosts are allowed by default except those provided by
92
                the hosts parameter. If True the list is treated as a
93
                allow list. All hosts are denied by default except those
94
                provided by the hosts parameter.
95
            ifaces: User access rules: List of ifaces.
96
            ifaces_allow: Defines how the ifaces list is to be interpreted.
97
                If False (default) the list is treated as a deny list.
98
                All ifaces are allowed by default except those provided by
99
                the ifaces parameter. If True the list is treated as a
100
                allow list. All ifaces are denied by default except those
101
                provided by the ifaces parameter.
102
            group_ids: List of group UUIDs for the user.
103
104
        Returns:
105
            The response. See :py:meth:`send_command` for details.
106
        """
107
        if not user_id:
108
            raise RequiredArgument(
109
                function=self.modify_user.__name__, argument='user_id'
110
            )
111
112
        cmd = XmlCommand("modify_user")
113
114
        if user_id:
115
            cmd.set_attribute("user_id", user_id)
116
117
        if name:
118
            cmd.add_element("new_name", name)
119
120
        if role_ids:
121
            for role in role_ids:
122
                cmd.add_element("role", attrs={"id": role})
123
124
        if hosts:
125
            cmd.add_element(
126
                "hosts",
127
                to_comma_list(hosts),
128
                attrs={"allow": to_bool(hosts_allow)},
129
            )
130
131
        if ifaces:
132
            cmd.add_element(
133
                "ifaces",
134
                to_comma_list(ifaces),
135
                attrs={"allow": to_bool(ifaces_allow)},
136
            )
137
138
        if comment:
139
            cmd.add_element("comment", comment)
140
141
        if password:
142
            cmd.add_element("password", password)
143
144
        if auth_source:
145
            _xmlauthsrc = cmd.add_element("sources")
146
            _xmlauthsrc.add_element("source", auth_source.value)
147
148
        if group_ids:
149
            _xmlgroups = cmd.add_element("groups")
150
            for group_id in group_ids:
151
                _xmlgroups.add_element("group", attrs={"id": group_id})
152
153
        return self._send_xml_command(cmd)
154

gvm/protocols/gmpv208/gmpv208.py 1 location

@@ 2460-2557 (lines=98) @@
2457
2458
        return self._send_xml_command(cmd)
2459
2460
    def modify_user(
2461
        self,
2462
        user_id: str = None,
2463
        name: str = None,
2464
        *,
2465
        new_name: Optional[str] = None,
2466
        comment: Optional[str] = None,
2467
        password: Optional[str] = None,
2468
        auth_source: Optional[UserAuthType] = None,
2469
        role_ids: Optional[List[str]] = None,
2470
        hosts: Optional[List[str]] = None,
2471
        hosts_allow: Optional[bool] = False,
2472
        ifaces: Optional[List[str]] = None,
2473
        ifaces_allow: Optional[bool] = False,
2474
        group_ids: Optional[List[str]] = None,
2475
    ) -> Any:
2476
        """Modifies an existing user. Most of the fields need to be supplied
2477
        for changing a single field even if no change is wanted for those.
2478
        Else empty values are inserted for the missing fields instead.
2479
        Arguments:
2480
            user_id: UUID of the user to be modified. Overrides name element
2481
                argument.
2482
            name: The name of the user to be modified. Either user_id or name
2483
                must be passed.
2484
            new_name: The new name for the user.
2485
            comment: Comment on the user.
2486
            password: The password for the user.
2487
            auth_source: Source allowed for authentication for this user.
2488
            roles_id: List of roles UUIDs for the user.
2489
            hosts: User access rules: List of hosts.
2490
            hosts_allow: Defines how the hosts list is to be interpreted.
2491
                If False (default) the list is treated as a deny list.
2492
                All hosts are allowed by default except those provided by
2493
                the hosts parameter. If True the list is treated as a
2494
                allow list. All hosts are denied by default except those
2495
                provided by the hosts parameter.
2496
            ifaces: User access rules: List of ifaces.
2497
            ifaces_allow: Defines how the ifaces list is to be interpreted.
2498
                If False (default) the list is treated as a deny list.
2499
                All ifaces are allowed by default except those provided by
2500
                the ifaces parameter. If True the list is treated as a
2501
                allow list. All ifaces are denied by default except those
2502
                provided by the ifaces parameter.
2503
            group_ids: List of group UUIDs for the user.
2504
2505
        Returns:
2506
            The response. See :py:meth:`send_command` for details.
2507
        """
2508
        if not user_id and not name:
2509
            raise RequiredArgument(
2510
                function=self.modify_user.__name__, argument='user_id or name'
2511
            )
2512
2513
        cmd = XmlCommand("modify_user")
2514
2515
        if user_id:
2516
            cmd.set_attribute("user_id", user_id)
2517
        else:
2518
            cmd.add_element("name", name)
2519
2520
        if new_name:
2521
            cmd.add_element("new_name", new_name)
2522
2523
        if role_ids:
2524
            for role in role_ids:
2525
                cmd.add_element("role", attrs={"id": role})
2526
2527
        if hosts:
2528
            cmd.add_element(
2529
                "hosts",
2530
                to_comma_list(hosts),
2531
                attrs={"allow": to_bool(hosts_allow)},
2532
            )
2533
2534
        if ifaces:
2535
            cmd.add_element(
2536
                "ifaces",
2537
                to_comma_list(ifaces),
2538
                attrs={"allow": to_bool(ifaces_allow)},
2539
            )
2540
2541
        if comment:
2542
            cmd.add_element("comment", comment)
2543
2544
        if password:
2545
            cmd.add_element("password", password)
2546
2547
        if auth_source:
2548
            _xmlauthsrc = cmd.add_element("sources")
2549
            _xmlauthsrc.add_element("source", auth_source.value)
2550
2551
        if group_ids:
2552
            _xmlgroups = cmd.add_element("groups")
2553
            for group_id in group_ids:
2554
                _xmlgroups.add_element("group", attrs={"id": group_id})
2555
2556
        return self._send_xml_command(cmd)
2557
2558
    def restore(self, entity_id: str) -> Any:
2559
        """Restore an entity from the trashcan
2560