svn commit: samba r14699 - branches/SAMBA_3_0/source/utils trunk/source/utils

jerry at samba.org jerry at samba.org
Fri Mar 24 23:54:09 GMT 2006


Author: jerry
Date: 2006-03-24 23:54:08 +0000 (Fri, 24 Mar 2006)
New Revision: 14699

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14699

Log:
allow 'net sam addmem' to accept a SID for the member


Modified:
   branches/SAMBA_3_0/source/utils/net_sam.c
   trunk/source/utils/net_sam.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/net_sam.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_sam.c	2006-03-24 22:04:16 UTC (rev 14698)
+++ branches/SAMBA_3_0/source/utils/net_sam.c	2006-03-24 23:54:08 UTC (rev 14699)
@@ -533,10 +533,24 @@
 		return -1;
 	}
 
+	/* check to see if the member to be added is a name or a SID */
+
 	if (!lookup_name(tmp_talloc_ctx(), argv[1], LOOKUP_NAME_ISOLATED,
-			 &memberdomain, &membername, &member, &membertype)) {
-		d_fprintf(stderr, "Could not find member %s\n", argv[1]);
-		return -1;
+			 &memberdomain, &membername, &member, &membertype))
+	{
+		/* try it as a SID */
+
+		if ( !string_to_sid( &member, argv[1] ) ) {
+			d_fprintf(stderr, "Could not find member %s\n", argv[1]);
+			return -1;
+		}
+
+		if ( !lookup_sid(tmp_talloc_ctx(), &member, &memberdomain, 
+			&membername, &membertype) ) 
+		{
+			d_fprintf(stderr, "Could not resolve SID %s\n", argv[1]);
+			return -1;
+		}
 	}
 
 	if ((grouptype == SID_NAME_ALIAS) || (grouptype == SID_NAME_WKN_GRP)) {
@@ -562,8 +576,8 @@
 		return -1;
 	}
 
-	d_printf("Added %s\\%s to %s\\%s\n",
-		 memberdomain, membername, groupdomain, groupname);
+	d_printf("Added %s\\%s to %s\\%s\n", memberdomain, membername, 
+		groupdomain, groupname);
 
 	return 0;
 }

Modified: trunk/source/utils/net_sam.c
===================================================================
--- trunk/source/utils/net_sam.c	2006-03-24 22:04:16 UTC (rev 14698)
+++ trunk/source/utils/net_sam.c	2006-03-24 23:54:08 UTC (rev 14699)
@@ -533,10 +533,24 @@
 		return -1;
 	}
 
+	/* check to see if the member to be added is a name or a SID */
+
 	if (!lookup_name(tmp_talloc_ctx(), argv[1], LOOKUP_NAME_ISOLATED,
-			 &memberdomain, &membername, &member, &membertype)) {
-		d_fprintf(stderr, "Could not find member %s\n", argv[1]);
-		return -1;
+			 &memberdomain, &membername, &member, &membertype))
+	{
+		/* try it as a SID */
+
+		if ( !string_to_sid( &member, argv[1] ) ) {
+			d_fprintf(stderr, "Could not find member %s\n", argv[1]);
+			return -1;
+		}
+
+		if ( !lookup_sid(tmp_talloc_ctx(), &member, &memberdomain, 
+			&membername, &membertype) ) 
+		{
+			d_fprintf(stderr, "Could not resolve SID %s\n", argv[1]);
+			return -1;
+		}
 	}
 
 	if ((grouptype == SID_NAME_ALIAS) || (grouptype == SID_NAME_WKN_GRP)) {
@@ -562,8 +576,8 @@
 		return -1;
 	}
 
-	d_printf("Added %s\\%s to %s\\%s\n",
-		 memberdomain, membername, groupdomain, groupname);
+	d_printf("Added %s\\%s to %s\\%s\n", memberdomain, membername, 
+		groupdomain, groupname);
 
 	return 0;
 }



More information about the samba-cvs mailing list