X-Git-Url: http://git.samba.org/samba.git/?p=sfrench%2Fsamba-autobuild%2F.git;a=blobdiff_plain;f=source%2Flib%2Fsamba3%2Fldb_samba3.c;h=53d8964d0db613bb2ec38897b131e5a7a72dd77b;hp=030b0519387b467ee6041fa12be96499b11387fd;hb=b73441b04d048919e95ee7f7bcae330c4dafefe7;hpb=178d040dbb07f53c29e945a2109bb3c8f355e3d3;ds=sidebyside diff --git a/source/lib/samba3/ldb_samba3.c b/source/lib/samba3/ldb_samba3.c index 030b0519387..53d8964d0db 100644 --- a/source/lib/samba3/ldb_samba3.c +++ b/source/lib/samba3/ldb_samba3.c @@ -28,74 +28,190 @@ #include "ldb/include/ldb_private.h" /* - * sambaGroupMapping -> group * gidNumber -> ??? * sambaSID -> member - * sambaGroupType -> groupType - * displayName -> name - * description -> description * sambaSIDList -> member (special!) */ -/* - * sambaTrustPassword - */ +/* sambaTrustPassword */ -/* sambaDomain - * sambaDomainName - * sambaSID - * sambaNextRid - * sambaNextGroupRid - * sambaNextUserRid - * sambaAlgorithmicRidBase - */ +/* sambaDomainName -> name */ -/* sambaUnixIdPool - */ +/* sambaUnixIdPool */ /* sambaIdmapEntry */ -/* sambaAccountPolicy */ +/* sambaAccountPolicy: FIXME */ /* sambaSidEntry: FIXME */ -/* sambaSamAccount -> user: - * uid -> unixName (magic!) - * sambaSID -> objectSid - * cn -> cn - * sambaLMPassword -> lmPwdHash - * sambaNTPassword -> ntPwdHash - * sambaPwdLastSet -> pwdLastSet - * sambaLogonTime -> lastLogon - * sambaLogoffTime -> lastLogoff - * sambaKickoffTime -> ??? - * sambaPwdCanChange -> ??? - * sambaPwdMustChange -> ??? - * sambaAcctFlags -> systemFlags ? - * displayName -> name - * sambaHomePath -> ??? - * sambaHomeDrive -> ??? - * sambaLogonScript -> ??? - * sambaProfilePath -> ??? - * description -> description - * sambaUserWorkstations -> ??? - * sambaPrimaryGroupSID -> primaryGroupID - * sambaDomainName -> ??? - * sambaMungedDial -> ??? - * sambaBadPasswordCount -> badPwdcount - * sambaBadPasswordTime -> badPasswordtime - * sambaPasswordHistory -> ntPwdHistory - * sambaLogonHours -> ??? - */ - /* Not necessary: * sambaConfig * sambaShare * sambaConfigOption + * sambaNextGroupRid + * sambaNextUserRid + * sambaAlgorithmicRidBase */ - -struct ldb_map_mappings samba3_mappings; +/* sambaKickoffTime -> ???*/ +/* sambaPwdCanChange -> ???*/ +/* sambaPwdMustChange -> ???*/ +/* sambaAcctFlags -> systemFlags ?*/ +/* sambaHomePath -> ???*/ +/* sambaHomeDrive -> ???*/ +/* sambaLogonScript -> ???*/ +/* sambaProfilePath -> ???*/ +/* sambaUserWorkstations -> ???*/ +/* sambaDomainName -> ???*/ +/* sambaMungedDial -> ???*/ +/* sambaPasswordHistory -> ntPwdHistory*/ +/* sambaLogonHours -> ???*/ + +/* sambaNextRid -> nextRid */ +const struct ldb_map_attribute attr_nextRid = { + .local_name = "nextRid", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaNextRid", +}; + +/* sambaBadPasswordTime -> badPasswordtime*/ +const struct ldb_map_attribute attr_badPasswordTime = { + .local_name = "badPasswordTime", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaBadPasswordTime", +}; + +/* sambaLMPassword -> lmPwdHash*/ +const struct ldb_map_attribute attr_lmPwdHash = { + .local_name = "lmPwdHash", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaLMPassword", +}; + +/* sambaGroupType -> groupType */ +const struct ldb_map_attribute attr_groupType = { + .local_name = "groupType", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaGroupType", +}; + +/* sambaNTPassword -> ntPwdHash*/ +const struct ldb_map_attribute attr_ntPwdHash = { + .local_name = "badPwdCount", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaNTPassword", +}; + +/* sambaPrimaryGroupSID -> primaryGroupID */ +const struct ldb_map_attribute attr_primaryGroupID = { + .local_name = "primaryGroupID", + .type = MAP_CONVERT, + .u.convert.remote_name = "sambaPrimaryGroupSID", + .u.convert.convert_local = NULL, /* FIXME: Add domain SID */ + .u.convert.convert_remote = NULL, /* FIXME: Extract RID */ +}; + +/* sambaBadPasswordCount -> badPwdCount */ +const struct ldb_map_attribute attr_badPwdCount = { + .local_name = "badPwdCount", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaBadPasswordCount", +}; + +/* sambaLogonTime -> lastLogon*/ +const struct ldb_map_attribute attr_lastLogon = { + .local_name = "lastLogon", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaLogonTime", +}; + +/* sambaLogoffTime -> lastLogoff*/ +const struct ldb_map_attribute attr_lastLogoff = { + .local_name = "lastLogoff", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaLogoffTime", +}; + +/* gidNumber -> unixName */ +const struct ldb_map_attribute attr_unixName_gid = { + .local_name = "unixName", + .type = MAP_CONVERT, + .u.convert.remote_name = "gidNumber", + .u.convert.convert_local = NULL, /* FIXME: Lookup gid */ + .u.convert.convert_remote = NULL, /* FIXME: Lookup groupname */ +}; + +/* uid -> unixName */ +const struct ldb_map_attribute attr_unixName_uid = { + .local_name = "unixName", + .type = MAP_CONVERT, + .u.convert.remote_name = "uid", + .u.convert.convert_local = NULL, /* FIXME: Lookup uid */ + .u.convert.convert_remote = NULL, /* FIXME: Lookup username */ +}; + +/* displayName -> name */ +const struct ldb_map_attribute attr_name = { + .local_name = "name", + .type = MAP_RENAME, + .u.rename.remote_name = "displayName", +}; + +/* cn */ +const struct ldb_map_attribute attr_cn = { + .local_name = "cn", + .type = MAP_KEEP, +}; + +/* description */ +const struct ldb_map_attribute attr_description = { + .local_name = "description", + .type = MAP_KEEP, +}; + +/* sambaSID -> objectSid*/ +const struct ldb_map_attribute attr_objectSid = { + .local_name = "objectSid", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaSID", +}; + +/* sambaPwdLastSet -> pwdLastSet*/ +const struct ldb_map_attribute attr_pwdLastSet = { + .local_name = "pwdLastSet", + .type = MAP_RENAME, + .u.rename.remote_name = "sambaPwdLastSet", +}; + +const struct ldb_map_objectclass samba3_objectclasses[] = { + { "group", "sambaGroupMapping" }, + { "user", "sambaSAMAccount" }, + { "domain", "sambaDomain" }, +}; + +const struct ldb_map_mappings samba3_mappings = +{ + .name = "samba3", + { + &attr_objectSid, + &attr_pwdLastSet, + &attr_description, + &attr_cn, + &attr_unixName_uid, + &attr_unixName_gid, + &attr_name, + &attr_lastLogoff, + &attr_lastLogon, + &attr_primaryGroupID, + &attr_badPwdCount, + &attr_ntPwdHash, + &attr_lmPwdHash, + &attr_groupType, + &attr_badPasswordTime, + &attr_nextRid, + } +}; /* the init function */ #ifdef HAVE_DLOPEN_DISABLED