diff options
author | Bryan Henderson <bryanh@giraffe.netgate.net> | 1996-11-02 02:06:47 +0000 |
---|---|---|
committer | Bryan Henderson <bryanh@giraffe.netgate.net> | 1996-11-02 02:06:47 +0000 |
commit | 763adb5235d3ca07f753e0eeb3f0e3c99545ab93 (patch) | |
tree | 71a8aa9512a6bca561c08dd5ee3160cf7dd1f1d1 | |
parent | 675740a8f3175c657d990c903351554e82899693 (diff) | |
download | postgresql-763adb5235d3ca07f753e0eeb3f0e3c99545ab93.tar.gz postgresql-763adb5235d3ca07f753e0eeb3f0e3c99545ab93.zip |
Convenience routine for checking superuser status.
-rw-r--r-- | src/backend/utils/misc/Makefile | 37 | ||||
-rw-r--r-- | src/backend/utils/misc/superuser.c | 43 |
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; +} + + + |