diff options
Diffstat (limited to 'usr/src/cmd/lp/lib/access/allowed.c')
-rw-r--r-- | usr/src/cmd/lp/lib/access/allowed.c | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/usr/src/cmd/lp/lib/access/allowed.c b/usr/src/cmd/lp/lib/access/allowed.c deleted file mode 100644 index c8f6844af6..0000000000 --- a/usr/src/cmd/lp/lib/access/allowed.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ - - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -/* EMACS_MODES: !fill, lnumb, !overwrite, !nodelete, !picture */ - -#include "string.h" -#include "unistd.h" - -#include "lp.h" -#include "access.h" -#include <pwd.h> -#include <auth_attr.h> -#include <auth_list.h> -#include <tsol/label.h> - -/** - ** is_user_admin() - CHECK IF CURRENT USER IS AN ADMINISTRATOR - **/ - -int -#if defined(__STDC__) -is_user_admin ( - void -) -#else -is_user_admin () -#endif -{ - /* For a labeled system, tsol_check_admin_auth is called - * instead of using Access. - */ - if (is_system_labeled()) { - /* Check that user has print admin authorization */ - return (tsol_check_admin_auth(getuid())); - } else { - return (Access(Lp_A, W_OK) == -1? 0 : 1); - } -} - -/** - ** is_user_allowed() - CHECK USER ACCESS ACCORDING TO ALLOW/DENY LISTS - **/ - -int -#if defined(__STDC__) -is_user_allowed ( - char * user, - char ** allow, - char ** deny -) -#else -is_user_allowed (user, allow, deny) - char *user, - **allow, - **deny; -#endif -{ - if (bangequ(user, LOCAL_LPUSER) || bangequ(user, LOCAL_ROOTUSER)) - return (1); - - return (allowed(user, allow, deny)); -} - -/** - ** is_user_allowed_form() - CHECK USER ACCESS TO FORM - **/ - -int -#if defined(__STDC__) -is_user_allowed_form ( - char * user, - char * form -) -#else -is_user_allowed_form (user, form) - char *user, - *form; -#endif -{ - char **allow, - **deny; - - if (loadaccess(Lp_A_Forms, form, "", &allow, &deny) == -1) - return (-1); - - return (is_user_allowed(user, allow, deny)); -} - -/** - ** is_user_allowed_printer() - CHECK USER ACCESS TO PRINTER - **/ - -int -#if defined(__STDC__) -is_user_allowed_printer ( - char * user, - char * printer -) -#else -is_user_allowed_printer (user, printer) - char *user, - *printer; -#endif -{ - char **allow, - **deny; - - if (loadaccess(Lp_A_Printers, printer, UACCESSPREFIX, &allow, &deny) == -1) - return (-1); - - return (is_user_allowed(user, allow, deny)); -} - -/** - ** is_form_allowed_printer() - CHECK FORM USE ON PRINTER - **/ - -int -#if defined(__STDC__) -is_form_allowed_printer ( - char * form, - char * printer -) -#else -is_form_allowed_printer (form, printer) - char *form, - *printer; -#endif -{ - char **allow, - **deny; - - if (loadaccess(Lp_A_Printers, printer, FACCESSPREFIX, &allow, &deny) == -1) - return (-1); - - return (allowed(form, allow, deny)); -} - -/** - ** allowed() - GENERAL ROUTINE TO CHECK ALLOW/DENY LISTS - **/ - -int -#if defined(__STDC__) -allowed ( - char * item, - char ** allow, - char ** deny -) -#else -allowed (item, allow, deny) - char *item, - **allow, - **deny; -#endif -{ - if (allow) { - if (bang_searchlist(item, allow)) - return (1); - else - return (0); - } - - if (deny) { - if (bang_searchlist(item, deny)) - return (0); - else - return (1); - } - - return (0); -} - -/* - * Check to see if the specified user has the administer the printing - * system authorization. - */ -int -tsol_check_admin_auth(uid_t uid) -{ - struct passwd *p; - char *name; - - p = getpwuid(uid); - if (p != NULL && p->pw_name != NULL) - name = p->pw_name; - else - name = ""; - - return (chkauthattr(PRINT_ADMIN_AUTH, name)); -} |