Passed
Pull Request — 2.x (#1933)
by Ramon
05:15
created

senaite.core.scripts._zope_passwd   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 26
dl 0
loc 36
rs 10
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A run() 0 12 2
1
# -*- coding: utf-8 -*-
2
3
import transaction
4
from senaite.core import logger
5
from senaite.core.scripts import parser
6
7
__doc__ = """Change the password of a ZOPE emergency user or creates a new user
8
if the specified user was not found in the database.
9
"""
10
11
parser.description = __doc__
12
parser.add_argument("-u", "--user",
13
                    dest="user", default="admin", type=str,
14
                    help="Emergency user name (default: %(default)s)")
15
parser.add_argument("-p", "--password",
16
                    dest="password", default="admin", type=str,
17
                    help="Password to set (default: %(default)s)")
18
19
20
def run(app):
21
    args, _ = parser.parse_known_args()
22
    user = args.user
23
    password = args.password
24
    users = app.acl_users.users
25
    try:
26
        users.updateUserPassword(user, password)
27
        logger.debug("Password changed for user %s" % user)
28
    except KeyError:
29
        users.addUser(user, user, password)
30
        logger.debug("New user %s created changed for user %s" % user)
31
    transaction.commit()
32
33
34
if __name__ == "__main__":
35
    run(app)  # noqa
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable app does not seem to be defined.
Loading history...
36