/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ #include "prlog.h" #include "nsTarget.h" #include "nsPrivilegeManager.h" #include "nsUserTarget.h" #include "nsUserDialogHelper.h" #include "xp.h" #include "xpgetstr.h" #include "plhash.h" extern int CAPS_TARGET_RISK_COLOR_HIGH; extern int CAPS_TARGET_RISK_COLOR_LOW; extern int CAPS_TARGET_RISK_COLOR_MEDIUM; extern int CAPS_TARGET_DESC_THREAD_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_THREAD_ACCESS; extern int CAPS_TARGET_URL_THREAD_ACCESS; extern int CAPS_TARGET_DESC_THREAD_GROUP_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_THREAD_GROUP_ACCESS; extern int CAPS_TARGET_URL_THREAD_GROUP_ACCESS; extern int CAPS_TARGET_DESC_EXEC_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_EXEC_ACCESS; extern int CAPS_TARGET_URL_EXEC_ACCESS; extern int CAPS_TARGET_DESC_EXIT_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_EXIT_ACCESS; extern int CAPS_TARGET_URL_EXIT_ACCESS; extern int CAPS_TARGET_DESC_LINK_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_LINK_ACCESS; extern int CAPS_TARGET_URL_LINK_ACCESS; extern int CAPS_TARGET_DESC_PROPERTY_WRITE; extern int CAPS_TARGET_DETAIL_DESC_PROPERTY_WRITE; extern int CAPS_TARGET_URL_PROPERTY_WRITE; extern int CAPS_TARGET_DESC_PROPERTY_READ; extern int CAPS_TARGET_DETAIL_DESC_PROPERTY_READ; extern int CAPS_TARGET_URL_PROPERTY_READ; extern int CAPS_TARGET_DESC_FILE_READ; extern int CAPS_TARGET_DETAIL_DESC_FILE_READ; extern int CAPS_TARGET_URL_FILE_READ; extern int CAPS_TARGET_DESC_FILE_WRITE; extern int CAPS_TARGET_DETAIL_DESC_FILE_WRITE; extern int CAPS_TARGET_URL_FILE_WRITE; extern int CAPS_TARGET_DESC_FILE_DELETE; extern int CAPS_TARGET_DETAIL_DESC_FILE_DELETE; extern int CAPS_TARGET_URL_FILE_DELETE; extern int CAPS_TARGET_DESC_FD_READ; extern int CAPS_TARGET_DETAIL_DESC_FD_READ; extern int CAPS_TARGET_URL_FD_READ; extern int CAPS_TARGET_DESC_FD_WRITE; extern int CAPS_TARGET_DETAIL_DESC_FD_WRITE; extern int CAPS_TARGET_URL_FD_WRITE; extern int CAPS_TARGET_DESC_LISTEN; extern int CAPS_TARGET_DETAIL_DESC_LISTEN; extern int CAPS_TARGET_URL_LISTEN; extern int CAPS_TARGET_DESC_ACCEPT; extern int CAPS_TARGET_DETAIL_DESC_ACCEPT; extern int CAPS_TARGET_URL_ACCEPT; extern int CAPS_TARGET_DESC_MULTICAST; extern int CAPS_TARGET_DETAIL_DESC_MULTICAST; extern int CAPS_TARGET_URL_MULTICAST; extern int CAPS_TARGET_DESC_TOP_LEVEL_WINDOW; extern int CAPS_TARGET_DETAIL_DESC_TOP_LEVEL_WINDOW; extern int CAPS_TARGET_URL_TOP_LEVEL_WINDOW; extern int CAPS_TARGET_DESC_DIALOG_MODALITY; extern int CAPS_TARGET_DETAIL_DESC_DIALOG_MODALITY; extern int CAPS_TARGET_URL_DIALOG_MODALITY; extern int CAPS_TARGET_DESC_PACKAGE_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_PACKAGE_ACCESS; extern int CAPS_TARGET_URL_PACKAGE_ACCESS; extern int CAPS_TARGET_DESC_PACKAGE_DEFINITION; extern int CAPS_TARGET_DETAIL_DESC_PACKAGE_DEFINITION; extern int CAPS_TARGET_URL_PACKAGE_DEFINITION; extern int CAPS_TARGET_DESC_SET_FACTORY; extern int CAPS_TARGET_DETAIL_DESC_SET_FACTORY; extern int CAPS_TARGET_URL_SET_FACTORY; extern int CAPS_TARGET_DESC_MEMBER_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_MEMBER_ACCESS; extern int CAPS_TARGET_URL_MEMBER_ACCESS; extern int CAPS_TARGET_DESC_PRINT_JOB_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_PRINT_JOB_ACCESS; extern int CAPS_TARGET_URL_PRINT_JOB_ACCESS; extern int CAPS_TARGET_DESC_SYSTEM_CLIPBOARD_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_SYSTEM_CLIPBOARD_ACCESS; extern int CAPS_TARGET_URL_SYSTEM_CLIPBOARD_ACCESS; extern int CAPS_TARGET_DESC_AWT_EVENT_QUEUE_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_AWT_EVENT_QUEUE_ACCESS; extern int CAPS_TARGET_URL_AWT_EVENT_QUEUE_ACCESS; extern int CAPS_TARGET_DESC_SECURITY_PROVIDER; extern int CAPS_TARGET_DETAIL_DESC_SECURITY_PROVIDER; extern int CAPS_TARGET_URL_SECURITY_PROVIDER; extern int CAPS_TARGET_DESC_CREATE_SECURITY_MANAGER; extern int CAPS_TARGET_DETAIL_DESC_CREATE_SECURITY_MANAGER; extern int CAPS_TARGET_URL_CREATE_SECURITY_MANAGER; extern int CAPS_TARGET_DESC_IMPERSONATOR; extern int CAPS_TARGET_DETAIL_DESC_IMPERSONATOR; extern int CAPS_TARGET_URL_IMPERSONATOR; extern int CAPS_TARGET_DESC_BROWSER_READ; extern int CAPS_TARGET_DETAIL_DESC_BROWSER_READ; extern int CAPS_TARGET_URL_BROWSER_READ; extern int CAPS_TARGET_DESC_BROWSER_WRITE; extern int CAPS_TARGET_DETAIL_DESC_BROWSER_WRITE; extern int CAPS_TARGET_URL_BROWSER_WRITE; extern int CAPS_TARGET_DESC_PREFS_READ; extern int CAPS_TARGET_DETAIL_DESC_PREFS_READ; extern int CAPS_TARGET_URL_PREFS_READ; extern int CAPS_TARGET_DESC_PREFS_WRITE; extern int CAPS_TARGET_DETAIL_DESC_PREFS_WRITE; extern int CAPS_TARGET_URL_PREFS_WRITE; extern int CAPS_TARGET_DESC_SEND_MAIL; extern int CAPS_TARGET_DETAIL_DESC_SEND_MAIL; extern int CAPS_TARGET_URL_SEND_MAIL; extern int CAPS_TARGET_DESC_REG_PRIVATE; extern int CAPS_TARGET_DETAIL_DESC_REG_PRIVATE; extern int CAPS_TARGET_URL_REG_PRIVATE; extern int CAPS_TARGET_DESC_REG_STANDARD; extern int CAPS_TARGET_DETAIL_DESC_REG_STANDARD; extern int CAPS_TARGET_URL_REG_STANDARD; extern int CAPS_TARGET_DESC_REG_ADMIN; extern int CAPS_TARGET_DETAIL_DESC_REG_ADMIN; extern int CAPS_TARGET_URL_REG_ADMIN; extern int CAPS_TARGET_DESC_UNINSTALL; extern int CAPS_TARGET_DETAIL_DESC_UNINSTALL; extern int CAPS_TARGET_URL_UNINSTALL; extern int CAPS_TARGET_DESC_SOFTWAREINSTALL; extern int CAPS_TARGET_DETAIL_DESC_SOFTWAREINSTALL; extern int CAPS_TARGET_URL_SOFTWAREINSTALL; extern int CAPS_TARGET_DESC_SILENTINSTALL; extern int CAPS_TARGET_DETAIL_DESC_SILENTINSTALL; extern int CAPS_TARGET_URL_SILENTINSTALL; extern int CAPS_TARGET_DESC_CONNECT; extern int CAPS_TARGET_DETAIL_DESC_CONNECT; extern int CAPS_TARGET_URL_CONNECT; extern int CAPS_TARGET_DESC_CLIENT_AUTH; extern int CAPS_TARGET_DETAIL_DESC_CLIENT_AUTH; extern int CAPS_TARGET_URL_CLIENT_AUTH; extern int CAPS_TARGET_DESC_REDIRECT; extern int CAPS_TARGET_DETAIL_DESC_REDIRECT; extern int CAPS_TARGET_URL_REDIRECT; extern int CAPS_TARGET_DESC_CONNECT_WITH_REDIRECT; extern int CAPS_TARGET_DETAIL_DESC_CONNECT_WITH_REDIRECT; extern int CAPS_TARGET_URL_CONNECT_WITH_REDIRECT; extern int CAPS_TARGET_DESC_CODEBASE_ENV; extern int CAPS_TARGET_DETAIL_DESC_CODEBASE_ENV; extern int CAPS_TARGET_URL_CODEBASE_ENV; extern int CAPS_TARGET_DESC_SUPER_USER; extern int CAPS_TARGET_DETAIL_DESC_SUPER_USER; extern int CAPS_TARGET_URL_SUPER_USER; extern int CAPS_TARGET_DESC_SAR; extern int CAPS_TARGET_DETAIL_DESC_SAR; extern int CAPS_TARGET_URL_SAR; extern int CAPS_TARGET_DESC_30_CAPABILITIES; extern int CAPS_TARGET_DETAIL_DESC_30_CAPABILITIES; extern int CAPS_TARGET_URL_30_CAPABILITIES; extern int CAPS_TARGET_DESC_MARIMBA; extern int CAPS_TARGET_DETAIL_DESC_MARIMBA; extern int CAPS_TARGET_URL_MARIMBA; extern int CAPS_TARGET_DESC_MARIMBA; extern int CAPS_TARGET_DETAIL_DESC_MARIMBA; extern int CAPS_TARGET_URL_MARIMBA; extern int CAPS_TARGET_DESC_IIOP; extern int CAPS_TARGET_DETAIL_DESC_IIOP; extern int CAPS_TARGET_URL_IIOP; extern int CAPS_TARGET_DESC_DEBUGGER; extern int CAPS_TARGET_DETAIL_DESC_DEBUGGER; extern int CAPS_TARGET_URL_DEBUGGER; extern int CAPS_TARGET_DESC_CANVAS_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_CANVAS_ACCESS; extern int CAPS_TARGET_URL_CANVAS_ACCESS; extern int CAPS_TARGET_DESC_FILE_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_FILE_ACCESS; extern int CAPS_TARGET_URL_FILE_ACCESS; extern int CAPS_TARGET_DESC_BROWSER_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_BROWSER_ACCESS; extern int CAPS_TARGET_URL_BROWSER_ACCESS; extern int CAPS_TARGET_DESC_LIMITED_FILE_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_LIMITED_FILE_ACCESS; extern int CAPS_TARGET_URL_LIMITED_FILE_ACCESS; extern int CAPS_TARGET_DESC_GAMES_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_GAMES_ACCESS; extern int CAPS_TARGET_URL_GAMES_ACCESS; extern int CAPS_TARGET_DESC_WORD_PROCESSOR_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_WORD_PROCESSOR_ACCESS; extern int CAPS_TARGET_URL_WORD_PROCESSOR_ACCESS; extern int CAPS_TARGET_DESC_SPREADSHEET_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_SPREADSHEET_ACCESS; extern int CAPS_TARGET_URL_SPREADSHEET_ACCESS; extern int CAPS_TARGET_DESC_PRESENTATION_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_PRESENTATION_ACCESS; extern int CAPS_TARGET_URL_PRESENTATION_ACCESS; extern int CAPS_TARGET_DESC_DATABASE_ACCESS; extern int CAPS_TARGET_DETAIL_DESC_DATABASE_ACCESS; extern int CAPS_TARGET_URL_DATABASE_ACCESS; extern int CAPS_TARGET_DESC_TERMINAL_EMULATOR; extern int CAPS_TARGET_DETAIL_DESC_TERMINAL_EMULATOR; extern int CAPS_TARGET_URL_TERMINAL_EMULATOR; extern int CAPS_TARGET_DESC_JAR_PACKAGER; extern int CAPS_TARGET_DETAIL_DESC_JAR_PACKAGER; extern int CAPS_TARGET_URL_JAR_PACKAGER; extern int CAPS_TARGET_DESC_ACCOUNT_SETUP; extern int CAPS_TARGET_DETAIL_DESC_ACCOUNT_SETUP; extern int CAPS_TARGET_URL_ACCOUNT_SETUP; extern int CAPS_TARGET_DESC_CONSTELLATION; extern int CAPS_TARGET_DETAIL_DESC_CONSTELLATION; extern int CAPS_TARGET_URL_CONSTELLATION; extern int CAPS_TARGET_RISK_COLOR_HIGH; extern int CAPS_TARGET_RISK_COLOR_HIGH; #define TARGET_STR " Target: " #define PRIN_STR " Principal: " static nsHashtable *theTargetRegistry = new nsHashtable(); static nsHashtable *theSystemTargetRegistry = new nsHashtable(); static nsHashtable *theDescToTargetRegistry = new nsHashtable(); static PRBool addToTargetArray(nsHashKey *aKey, void *aData); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "jpermission.h" PR_PUBLIC_API(void) java_netscape_security_getTargetDetails(const char *charSetName, char* targetName, char** details, char **risk) { if (!targetName) { return; } nsTarget *target = nsTarget::getTargetFromDescription(targetName); *risk = target->getRisk(); nsTargetArray *primitiveTargets = target->getFlattenedTargetArray(); /* Count the length of string buffer to allocate */ int len=0; int extra_len = strlen("