summaryrefslogtreecommitdiff
path: root/source3/utils/net_groupmap.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2003-06-21 08:35:30 +0000
committerAndrew Bartlett <abartlet@samba.org>2003-06-21 08:35:30 +0000
commit668a9af94eebd7cc875a1f0c7d9fbcb135fb5c61 (patch)
tree39f2ce1726b96d0fa4cd70fc007962add2bbc8ed /source3/utils/net_groupmap.c
parent68f1ca6247f1242e836d989ebdfc139fed866bee (diff)
downloadsamba-668a9af94eebd7cc875a1f0c7d9fbcb135fb5c61.tar.gz
samba-668a9af94eebd7cc875a1f0c7d9fbcb135fb5c61.tar.bz2
samba-668a9af94eebd7cc875a1f0c7d9fbcb135fb5c61.zip
This removes the StrCaseCmp() stuff from 'net idmap' and 'net
groupmap'. The correct way to implement this stuff is via a function table, as exampled in all the other parts of 'net'. This also moves the idmap code into a new file. Volker, is this your code? You might want to put your name on it. Andrew Bartlett (This used to be commit 477f2d9e390bb18d4f08d1cac9c981b73d628c4f)
Diffstat (limited to 'source3/utils/net_groupmap.c')
-rw-r--r--source3/utils/net_groupmap.c50
1 files changed, 46 insertions, 4 deletions
diff --git a/source3/utils/net_groupmap.c b/source3/utils/net_groupmap.c
index fd6e4aef59..c9c37a68c2 100644
--- a/source3/utils/net_groupmap.c
+++ b/source3/utils/net_groupmap.c
@@ -106,7 +106,7 @@ static void print_map_entry ( GROUP_MAP map, BOOL long_list )
/*********************************************************
List the groups.
**********************************************************/
-int net_groupmap_list(int argc, const char **argv)
+static int net_groupmap_list(int argc, const char **argv)
{
int entries;
BOOL long_list = False;
@@ -177,7 +177,7 @@ int net_groupmap_list(int argc, const char **argv)
Add a new group mapping entry
**********************************************************/
-int net_groupmap_add(int argc, const char **argv)
+static int net_groupmap_add(int argc, const char **argv)
{
DOM_SID sid;
fstring ntgroup = "";
@@ -283,7 +283,7 @@ int net_groupmap_add(int argc, const char **argv)
return 0;
}
-int net_groupmap_modify(int argc, const char **argv)
+static int net_groupmap_modify(int argc, const char **argv)
{
DOM_SID sid;
GROUP_MAP map;
@@ -412,7 +412,7 @@ int net_groupmap_modify(int argc, const char **argv)
return 0;
}
-int net_groupmap_delete(int argc, const char **argv)
+static int net_groupmap_delete(int argc, const char **argv)
{
DOM_SID sid;
fstring ntgroup = "";
@@ -466,3 +466,45 @@ int net_groupmap_delete(int argc, const char **argv)
return 0;
}
+int net_help_groupmap(int argc, const char **argv)
+{
+ d_printf("net groupmap add"\
+ "\n Create a new group mapping\n");
+ d_printf("net groupmap modify"\
+ "\n Update a group mapping\n");
+ d_printf("net groupmap delete"\
+ "\n Remove a group mapping\n");
+ d_printf("net groupmap list"\
+ "\n List current group map\n");
+
+ return -1;
+}
+
+
+/***********************************************************
+ migrated functionality from smbgroupedit
+ **********************************************************/
+int net_groupmap(int argc, const char **argv)
+{
+ /* we shouldn't have silly checks like this */
+ if (getuid() != 0) {
+ d_printf("You must be root to edit group mappings.\nExiting...\n");
+ return -1;
+ }
+
+ struct functable func[] = {
+ {"add", net_groupmap_add},
+ {"modify", net_groupmap_modify},
+ {"delete", net_groupmap_delete},
+ {"list", net_groupmap_list},
+ {"help", net_help_groupmap},
+ {NULL, NULL}
+ };
+
+ return net_run_function(argc, argv, func, net_help_groupmap);
+ if ( 0 == argc )
+ return net_help_groupmap( argc, argv );
+
+ return net_help_groupmap( argc, argv );
+}
+