[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Mon Apr 26 09:11:02 MDT 2010


The branch, master has been updated
       via  abdb96b... s3: Implement "net rpc user setprimarygroup"
      from  5ce1dbf... s4-ddb: don't create partitions with the UNINSTANT flag set

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit abdb96b8ff373b78ffbf24c66c4e6b69886e87c4
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Apr 26 16:44:34 2010 +0200

    s3: Implement "net rpc user setprimarygroup"

-----------------------------------------------------------------------

Summary of changes:
 source3/utils/net_rpc.c |   59 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c
index 8fe243d..0fd693e 100644
--- a/source3/utils/net_rpc.c
+++ b/source3/utils/net_rpc.c
@@ -731,6 +731,57 @@ static int rpc_user_rename(struct net_context *c, int argc, const char **argv)
 }
 
 /**
+ * Set a user's primary group
+ *
+ * @param argc  Standard main() style argc.
+ * @param argv  Standard main() style argv. Initial components are already
+ *              stripped.
+ *
+ * @return A shell status integer (0 for success).
+ **/
+
+static int rpc_user_setprimarygroup(struct net_context *c, int argc,
+				    const char **argv)
+{
+	NET_API_STATUS status;
+	uint8_t *buffer;
+	struct GROUP_INFO_2 *g2;
+	struct USER_INFO_1051 u1051;
+	uint32_t parm_err = 0;
+
+	if (argc != 2 || c->display_usage) {
+		rpc_user_usage(c, argc, argv);
+		return 0;
+	}
+
+	status = NetGroupGetInfo(c->opt_host, argv[1], 2, &buffer);
+	if (status) {
+		d_fprintf(stderr, _("Failed to find group name %s -- %s\n"),
+			  argv[1],
+			  libnetapi_get_error_string(c->netapi_ctx, status));
+		return status;
+	}
+	g2 = (struct GROUP_INFO_2 *)buffer;
+
+	u1051.usri1051_primary_group_id = g2->grpi2_group_id;
+
+	NetApiBufferFree(buffer);
+
+	status = NetUserSetInfo(c->opt_host, argv[0], 1051,
+				(uint8_t *)&u1051, &parm_err);
+	if (status) {
+		d_fprintf(stderr,
+			  _("Failed to set user's primary group %s to %s - "
+			    "%s\n"), argv[0], argv[1],
+			  libnetapi_get_error_string(c->netapi_ctx, status));
+	} else {
+		d_printf(_("Set primary group of user %s to %s\n"), argv[0],
+			 argv[1]);
+	}
+	return status;
+}
+
+/**
  * Delete a user from a remote RPC server.
  *
  * @param argc  Standard main() style argc.
@@ -978,6 +1029,14 @@ int net_rpc_user(struct net_context *c, int argc, const char **argv)
 			N_("net rpc user rename\n"
 			   "    Rename specified user")
 		},
+		{
+			"setprimarygroup",
+			rpc_user_setprimarygroup,
+			NET_TRANSPORT_RPC,
+			"Set a user's primary group",
+			"net rpc user setprimarygroup\n"
+			"    Set a user's primary group"
+		},
 		{NULL, NULL, 0, NULL, NULL}
 	};
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list