mirror of
https://github.com/samba-team/samba.git
synced 2025-12-05 12:23:50 +03:00
r26628: python: Add more documentation, simplify code in Samba3 module.
This commit is contained in:
committed by
Stefan Metzmacher
parent
2596b479ab
commit
3c329ee73d
@@ -20,13 +20,20 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
"""Convenience functions for using the SAM."""
|
||||
|
||||
import samba
|
||||
import misc
|
||||
import ldb
|
||||
|
||||
class SamDB(samba.Ldb):
|
||||
"""The SAM database."""
|
||||
def __init__(self, url=None, session_info=None, credentials=None,
|
||||
modules_dir=None, lp=None):
|
||||
"""Open the Sam Database.
|
||||
|
||||
:param url: URL of the database.
|
||||
"""
|
||||
super(SamDB, self).__init__(session_info=session_info, credentials=credentials,
|
||||
modules_dir=modules_dir, lp=lp)
|
||||
assert misc.dsdb_set_global_schema(self) == 0
|
||||
@@ -47,7 +54,12 @@ description: %s
|
||||
self.add(msg[1])
|
||||
|
||||
def setup_name_mapping(self, domaindn, sid, unixname):
|
||||
"""Setup a mapping between a sam name and a unix name."""
|
||||
"""Setup a mapping between a sam name and a unix name.
|
||||
|
||||
:param domaindn: DN of the domain.
|
||||
:param sid: SID of the NT-side of the mapping.
|
||||
:param unixname: Unix name to map to.
|
||||
"""
|
||||
res = self.search(ldb.Dn(self, domaindn), ldb.SCOPE_SUBTREE,
|
||||
"objectSid=%s" % sid, ["dn"])
|
||||
assert len(res) == 1, "Failed to find record for objectSid %s" % sid
|
||||
@@ -61,7 +73,7 @@ unixName: %s
|
||||
self.modify(self.parse_ldif(mod).next()[1])
|
||||
|
||||
def enable_account(self, user_dn):
|
||||
"""enable the account.
|
||||
"""Enable an account.
|
||||
|
||||
:param user_dn: Dn of the account to enable.
|
||||
"""
|
||||
@@ -75,10 +87,15 @@ changetype: modify
|
||||
replace: userAccountControl
|
||||
userAccountControl: %u
|
||||
""" % (user_dn, userAccountControl)
|
||||
self.modify(mod)
|
||||
self.modify_ldif(mod)
|
||||
|
||||
def newuser(self, username, unixname, password, message):
|
||||
"""add a new user record"""
|
||||
def newuser(self, username, unixname, password):
|
||||
"""add a new user record.
|
||||
|
||||
:param username: Name of the new user.
|
||||
:param unixname: Name of the unix user to map to.
|
||||
:param password: Password for the new user
|
||||
"""
|
||||
# connect to the sam
|
||||
self.transaction_start()
|
||||
|
||||
@@ -97,13 +114,13 @@ userAccountControl: %u
|
||||
# the new user record. note the reliance on the samdb module to fill
|
||||
# in a sid, guid etc
|
||||
#
|
||||
ldif = """
|
||||
dn: %s
|
||||
sAMAccountName: %s
|
||||
unixName: %s
|
||||
sambaPassword: %s
|
||||
objectClass: user
|
||||
""" % (user_dn, username, unixname, password)
|
||||
# now the real work
|
||||
self.add({"dn": user_dn,
|
||||
"sAMAccountName": username,
|
||||
"unixName": unixname,
|
||||
"sambaPassword": password,
|
||||
"objectClass": "user"})
|
||||
|
||||
# add the user to the users group as well
|
||||
modgroup = """
|
||||
dn: %s
|
||||
@@ -113,11 +130,6 @@ member: %s
|
||||
""" % (dom_users, user_dn)
|
||||
|
||||
|
||||
# now the real work
|
||||
message("Adding user %s" % user_dn)
|
||||
self.add(ldif)
|
||||
|
||||
message("Modifying group %s" % dom_users)
|
||||
self.modify(modgroup)
|
||||
|
||||
# modify the userAccountControl to remove the disabled bit
|
||||
@@ -125,6 +137,10 @@ member: %s
|
||||
self.transaction_commit()
|
||||
|
||||
def set_domain_sid(self, sid):
|
||||
"""Change the domain SID used by this SamDB.
|
||||
|
||||
:param sid: The new domain sid to use.
|
||||
"""
|
||||
misc.samdb_set_domain_sid(self, sid)
|
||||
|
||||
def attach_schema_from_ldif(self, pf, df):
|
||||
|
||||
Reference in New Issue
Block a user