octoprint_auth_ldap.user.LDAPUser.__init__()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 22
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 19
nop 8
dl 0
loc 22
rs 9.45
c 0
b 0
f 0

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
# coding=utf-8
2
from __future__ import absolute_import
3
4
from octoprint.access.users import User
5
6
7
class LDAPUser(User):
8
    USER_TYPE = "LDAP"
9
10
    # noinspection PyShadowingNames
11
    def __init__(
12
            self,
13
            username,
14
            active=True,
15
            permissions=None,
16
            groups=None,
17
            apikey=None,
18
            settings=None,
19
            dn=None
20
    ):
21
        User.__init__(
22
            self,
23
            username=username,
24
            passwordHash=None,
25
            active=active,
26
            permissions=permissions,
27
            groups=groups,
28
            apikey=apikey,
29
            settings=settings
30
        )
31
        # TODO validate distinguished name
32
        self._dn = dn
33
34
    @property
35
    def distinguished_name(self):
36
        return self._dn
37