svn commit: samba r22766 - in branches/SAMBA_3_0/source: passdb rpc_server utils

vlendec at samba.org vlendec at samba.org
Wed May 9 11:39:56 GMT 2007


Author: vlendec
Date: 2007-05-09 11:39:55 +0000 (Wed, 09 May 2007)
New Revision: 22766

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

Log:
Merge from 3_0:

r22412 | obnox | 2007-04-20 14:23:36 +0200 (Fr, 20 Apr 2007) | 5 lines

Add a "deletelocalgroup" subcommand to net sam.

Thanks to Karolin Seeger <ks at sernet.de>.



Modified:
   branches/SAMBA_3_0/source/passdb/pdb_interface.c
   branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
   branches/SAMBA_3_0/source/utils/net_sam.c


Changeset:
Modified: branches/SAMBA_3_0/source/passdb/pdb_interface.c
===================================================================
--- branches/SAMBA_3_0/source/passdb/pdb_interface.c	2007-05-09 00:52:46 UTC (rev 22765)
+++ branches/SAMBA_3_0/source/passdb/pdb_interface.c	2007-05-09 11:39:55 UTC (rev 22766)
@@ -904,35 +904,28 @@
 	return pdb->del_groupmem(pdb, mem_ctx, group_rid, member_rid);
 }
 
-BOOL pdb_find_alias(const char *name, DOM_SID *sid)
-{
-	struct pdb_methods *pdb = pdb_get_methods();
-	return NT_STATUS_IS_OK(pdb->find_alias(pdb, name, sid));
-}
-
 NTSTATUS pdb_create_alias(const char *name, uint32 *rid)
 {
 	struct pdb_methods *pdb = pdb_get_methods();
 	return pdb->create_alias(pdb, name, rid);
 }
 
-BOOL pdb_delete_alias(const DOM_SID *sid)
+NTSTATUS pdb_delete_alias(const DOM_SID *sid)
 {
 	struct pdb_methods *pdb = pdb_get_methods();
-	return NT_STATUS_IS_OK(pdb->delete_alias(pdb, sid));
-							    
+	return pdb->delete_alias(pdb, sid);
 }
 
-BOOL pdb_get_aliasinfo(const DOM_SID *sid, struct acct_info *info)
+NTSTATUS pdb_get_aliasinfo(const DOM_SID *sid, struct acct_info *info)
 {
 	struct pdb_methods *pdb = pdb_get_methods();
-	return NT_STATUS_IS_OK(pdb->get_aliasinfo(pdb, sid, info));
+	return pdb->get_aliasinfo(pdb, sid, info);
 }
 
-BOOL pdb_set_aliasinfo(const DOM_SID *sid, struct acct_info *info)
+NTSTATUS pdb_set_aliasinfo(const DOM_SID *sid, struct acct_info *info)
 {
 	struct pdb_methods *pdb = pdb_get_methods();
-	return NT_STATUS_IS_OK(pdb->set_aliasinfo(pdb, sid, info));
+	return pdb->set_aliasinfo(pdb, sid, info);
 }
 
 NTSTATUS pdb_add_aliasmem(const DOM_SID *alias, const DOM_SID *member)

Modified: branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c	2007-05-09 00:52:46 UTC (rev 22765)
+++ branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c	2007-05-09 11:39:55 UTC (rev 22766)
@@ -1354,7 +1354,7 @@
 	DOM_SID   sid;
 	struct acct_info info;
 	uint32    acc_granted;
-	BOOL ret;
+	NTSTATUS status;
 
 	r_u->status = NT_STATUS_OK;
 
@@ -1368,11 +1368,11 @@
 	}
 
 	become_root();
-	ret = pdb_get_aliasinfo(&sid, &info);
+	status = pdb_get_aliasinfo(&sid, &info);
 	unbecome_root();
 	
-	if ( !ret )
-		return NT_STATUS_NO_SUCH_ALIAS;
+	if ( !NT_STATUS_IS_OK(status))
+		return status;
 
 	if ( !(r_u->ctr = TALLOC_ZERO_P( p->mem_ctx, ALIAS_INFO_CTR )) ) 
 		return NT_STATUS_NO_MEMORY;
@@ -4301,7 +4301,7 @@
 	uint32 acc_granted;
 	SE_PRIV se_rights;
 	BOOL can_add_accounts;
-	BOOL ret;
+	NTSTATUS status;
 	DISP_INFO *disp_info = NULL;
 
 	DEBUG(5, ("_samr_delete_dom_alias: %d\n", __LINE__));
@@ -4340,15 +4340,15 @@
 		become_root();
 
 	/* Have passdb delete the alias */
-	ret = pdb_delete_alias(&alias_sid);
+	status = pdb_delete_alias(&alias_sid);
 	
 	if ( can_add_accounts )
 		unbecome_root();
 		
 	/******** END SeAddUsers BLOCK *********/
 
-	if ( !ret )
-		return NT_STATUS_ACCESS_DENIED;
+	if ( !NT_STATUS_IS_OK(status))
+		return status;
 
 	if (!close_policy_hnd(p, &q_u->alias_pol))
 		return NT_STATUS_OBJECT_NAME_INVALID;
@@ -4693,8 +4693,8 @@
 	struct acct_info info;
 	ALIAS_INFO_CTR *ctr;
 	uint32 acc_granted;
-	BOOL ret;
 	BOOL can_mod_accounts;
+	NTSTATUS status;
 	DISP_INFO *disp_info = NULL;
 
 	if (!get_lsa_policy_samr_sid(p, &q_u->alias_pol, &group_sid, &acc_granted, &disp_info))
@@ -4709,18 +4709,16 @@
 	/* get the current group information */
 
 	become_root();
-	ret = pdb_get_aliasinfo( &group_sid, &info );
+	status = pdb_get_aliasinfo( &group_sid, &info );
 	unbecome_root();
 
-	if ( !ret ) {
-		return NT_STATUS_NO_SUCH_ALIAS;
-	}
+	if ( !NT_STATUS_IS_OK(status))
+		return status;
 
 	switch (ctr->level) {
 		case 2:
 		{
 			fstring group_name, acct_name;
-			NTSTATUS status;
 
 			/* We currently do not support renaming groups in the
 			   the BUILTIN domain.  Refer to util_builtin.c to understand 
@@ -4776,18 +4774,17 @@
         if ( can_mod_accounts )
                 become_root();
 
-        ret = pdb_set_aliasinfo( &group_sid, &info );
+        status = pdb_set_aliasinfo( &group_sid, &info );
 
         if ( can_mod_accounts )
                 unbecome_root();
 
         /******** End SeAddUsers BLOCK *********/
 
-	if (ret) {
+	if (NT_STATUS_IS_OK(status))
 		force_flush_samr_cache(disp_info);
-	}
 
-	return ret ? NT_STATUS_OK : NT_STATUS_ACCESS_DENIED;
+	return status;
 }
 
 /*********************************************************************

Modified: branches/SAMBA_3_0/source/utils/net_sam.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_sam.c	2007-05-09 00:52:46 UTC (rev 22765)
+++ branches/SAMBA_3_0/source/utils/net_sam.c	2007-05-09 11:39:55 UTC (rev 22766)
@@ -580,7 +580,7 @@
 	DOM_SID sid;
         enum lsa_SidType type;
         const char *dom, *name;
-	int ret;
+	NTSTATUS status;
 
 	if (argc != 1) {
 		d_fprintf(stderr, "usage: net sam deletelocalgroup <name>\n");
@@ -589,7 +589,7 @@
 
 	if (!lookup_name(tmp_talloc_ctx(), argv[0], LOOKUP_NAME_ISOLATED,
 			 &dom, &name, &sid, &type)) {
-		d_fprintf(stderr, "Could not find name %s.\n", argv[0]);
+		d_fprintf(stderr, "Could not find %s.\n", argv[0]);
 		return -1;
 	}
 
@@ -599,12 +599,13 @@
 		return -1;
 	}
 
-	ret = pdb_delete_alias(&sid);
+	status = pdb_delete_alias(&sid);
 
-	if ( !ret ) {
-		d_fprintf(stderr, "Could not delete local group %s.\n", argv[0]);
-		return -1;
-	}
+	if (!NT_STATUS_IS_OK(status)) {
+                d_fprintf(stderr, "Deleting local group %s failed with %s\n",
+                          argv[0], nt_errstr(status));
+                return -1;
+        }
 
 	d_printf("Deleted local group %s.\n", argv[0]);
 



More information about the samba-cvs mailing list