summaryrefslogtreecommitdiff
path: root/source3/passdb/passdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/passdb/passdb.c')
-rw-r--r--source3/passdb/passdb.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
index a4bb657e80..0cd2f6ef2e 100644
--- a/source3/passdb/passdb.c
+++ b/source3/passdb/passdb.c
@@ -85,6 +85,15 @@ BOOL initialize_password_db(void)
*/
/************************************************************************
+ Utility function to search smb passwd by rid.
+*************************************************************************/
+
+struct smb_passwd *iterate_getsmbpwrid(uint32 user_rid)
+{
+ return iterate_getsmbpwuid(pdb_user_rid_to_uid(user_rid));
+}
+
+/************************************************************************
Utility function to search smb passwd by uid. use this if your database
does not have search facilities.
*************************************************************************/
@@ -223,6 +232,15 @@ struct smb_passwd *getsmbpwnam(char *name)
}
/************************************************************************
+ Routine to search smb passwd by user rid.
+*************************************************************************/
+
+struct smb_passwd *getsmbpwrid(uint32 user_rid)
+{
+ return pdb_ops->getsmbpwrid(user_rid);
+}
+
+/************************************************************************
Routine to search smb passwd by uid.
*************************************************************************/
@@ -966,6 +984,15 @@ Error was %s\n", sid_file, strerror(errno) ));
converts UNIX uid to an NT User RID.
********************************************************************/
+uid_t pdb_user_rid_to_uid(uint32 user_rid)
+{
+ return (uid_t)(((user_rid & (~USER_RID_TYPE))- 1000)/RID_MULTIPLIER);
+}
+
+/*******************************************************************
+ converts UNIX uid to an NT User RID.
+ ********************************************************************/
+
uint32 pdb_uid_to_user_rid(uid_t uid)
{
return (((((uint32)uid)*RID_MULTIPLIER) + 1000) | USER_RID_TYPE);