2
# -*- coding: utf-8 -*-
5
from lum.ldap_protocol import UserModel
6
from utilities import _, show_error_dialog, ask_question, create_builder
8
class lumNewUserDialog():
10
def __init__(self, datapath, connection):
13
'on_username_entry_focus_out_event': self.guess_params,
16
self.__builder = create_builder("LumNewUserDialog.ui")
18
self.__window = self.__builder.get_object("new_user_dialog")
19
self.__connection = connection
22
self.__builder.connect_signals(signals)
24
def guess_params(self, widget = None, event_data = None):
25
"""Guess parameters"""
27
widget = self.__builder.get_object("username_entry")
29
username = widget.get_text()
32
sn = self.__builder.get_object("sn_entry")
33
if sn.get_text() == "":
34
sn.set_text(username.split(".")[-1].capitalize())
37
home = self.__builder.get_object("home_entry")
38
if home.get_text() == "" and username != "":
39
home.set_text("/home/" + username)
44
# Check if the user says "save"...
45
if self.__window.run() == 1:
47
# And then retrieve data
48
username = self.__builder.get_object("username_entry").get_text()
49
givenName = self.__builder.get_object("givenName_entry").get_text()
50
sn = self.__builder.get_object("sn_entry").get_text()
51
home = self.__builder.get_object("home_entry").get_text()
52
shell = self.__builder.get_object("shell_entry").get_text()
54
# Set uid to 0 so ldap_protocol will autodetermine the first free uid
55
# when creating the user
58
group = self.__builder.get_object("group_entry").get_text()
59
gid = self.__connection.gid_from_group(group)
61
# Check if this is an existent user
62
if self.__connection.is_present("uid=%s" % username):
63
show_error_dialog(_("User %s is present, not overwriting it!") % username)
64
self.__window.destroy()
67
# Ask the user if he intended to create the group
69
if ask_question(_("The group %s doesn't exists, create it now?") % group):
70
self.__connection.add_group(group)
71
gid = self.__connection.gid_from_group(group)
73
self.__window.destroy()
76
self.usermodel = UserModel()
77
self.usermodel.set_username(username)
78
self.usermodel.set_gid(gid)
79
self.usermodel.set_surname(sn)
80
self.usermodel.set_given_name(givenName)
81
self.usermodel.set_home(home)
82
self.usermodel.set_shell(shell)
84
self.__window.destroy()