aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Henderson <bryanh@giraffe.netgate.net>1996-11-02 02:06:47 +0000
committerBryan Henderson <bryanh@giraffe.netgate.net>1996-11-02 02:06:47 +0000
commit763adb5235d3ca07f753e0eeb3f0e3c99545ab93 (patch)
tree71a8aa9512a6bca561c08dd5ee3160cf7dd1f1d1
parent675740a8f3175c657d990c903351554e82899693 (diff)
downloadpostgresql-763adb5235d3ca07f753e0eeb3f0e3c99545ab93.tar.gz
postgresql-763adb5235d3ca07f753e0eeb3f0e3c99545ab93.zip
Convenience routine for checking superuser status.
-rw-r--r--src/backend/utils/misc/Makefile37
-rw-r--r--src/backend/utils/misc/superuser.c43
2 files changed, 80 insertions, 0 deletions
diff --git a/src/backend/utils/misc/Makefile b/src/backend/utils/misc/Makefile
new file mode 100644
index 00000000000..39f52138a31
--- /dev/null
+++ b/src/backend/utils/misc/Makefile
@@ -0,0 +1,37 @@
+#-------------------------------------------------------------------------
+#
+# Makefile--
+# Makefile for utils/misc
+#
+# IDENTIFICATION
+# $Header: /cvsroot/pgsql/src/backend/utils/misc/Makefile,v 1.1 1996/11/02 02:06:46 bryanh Exp $
+#
+#-------------------------------------------------------------------------
+
+SRCDIR = ../../..
+include ../../../Makefile.global
+
+INCLUDE_OPT = \
+ -I../../port/$(PORTNAME) \
+ -I../../include \
+ -I../../../include
+
+CFLAGS += $(INCLUDE_OPT)
+
+OBJS = superuser.o
+
+all: SUBSYS.o
+
+SUBSYS.o: $(OBJS)
+ $(LD) -r -o SUBSYS.o $(OBJS)
+
+depend dep:
+ $(CC) -MM $(INCLUDE_OPT) *.c >depend
+
+clean:
+ rm -f SUBSYS.o $(OBJS)
+
+ifeq (depend,$(wildcard depend))
+include depend
+endif
+
diff --git a/src/backend/utils/misc/superuser.c b/src/backend/utils/misc/superuser.c
new file mode 100644
index 00000000000..69781ef34d1
--- /dev/null
+++ b/src/backend/utils/misc/superuser.c
@@ -0,0 +1,43 @@
+/*-------------------------------------------------------------------------
+ *
+ * superuser.c--
+ *
+ * The superuser() function. Determines if user has superuser privilege.
+ *
+ * Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * IDENTIFICATION
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/superuser.c,v 1.1 1996/11/02 02:06:47 bryanh Exp $
+ *
+ * DESCRIPTION
+ * See superuser().
+ *-------------------------------------------------------------------------
+ */
+
+#include <c.h>
+#include <postgres.h>
+#include <access/htup.h>
+#include <utils/syscache.h>
+#include <catalog/pg_user.h>
+
+
+
+bool
+superuser(void) {
+/*--------------------------------------------------------------------------
+ The Postgres user running this command has Postgres superuser
+ privileges.
+--------------------------------------------------------------------------*/
+ extern char *UserName; /* defined in global.c */
+
+ HeapTuple utup;
+
+ utup = SearchSysCacheTuple(USENAME, PointerGetDatum(UserName),
+ 0,0,0);
+ Assert(utup != NULL);
+ return ((Form_pg_user)GETSTRUCT(utup))->usesuper;
+}
+
+
+