4 * Dummy security label provider.
6 * This module does not provide anything worthwhile from a security
7 * perspective, but allows regression testing independent of platform-specific
8 * features like SELinux.
10 * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
11 * Portions Copyright (c) 1994, Regents of the University of California
15 #include "commands/seclabel.h"
16 #include "miscadmin.h"
17 #include "utils/rel.h"
21 /* Entrypoint of the module */
25 dummy_object_relabel(const ObjectAddress *object, const char *seclabel)
27 if (seclabel == NULL ||
28 strcmp(seclabel, "unclassified") == 0 ||
29 strcmp(seclabel, "classified") == 0)
32 if (strcmp(seclabel, "secret") == 0 ||
33 strcmp(seclabel, "top secret") == 0)
37 (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
38 errmsg("only superuser can set '%s' label", seclabel)));
42 (errcode(ERRCODE_INVALID_NAME),
43 errmsg("'%s' is not a valid security label", seclabel)));
49 register_label_provider("dummy", dummy_object_relabel);