This file is indexed.

/usr/share/spotweb/lib/SpotSecurity.php is in spotweb 20111002+dfsg-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
define('SPOTWEB_SECURITY_VERSION', '0.14');

class SpotSecurity {
	private $_db;
	private $_user;
	private $_permissions;
	private $_settings;
	
	/*
	 * Het security systeem kent een aantal rechten welke gedefinieerd worden met een aantal parameters.
	 * 
	 * Parameter:
	 *     Permissie           - Permissie is de permissie die gevraagd wordt - moet gebruik maken van de gedefinieerde constants
	 *     Object              - Geeft aan dat de permissie enkel voor dit specifieke object geld. Denk bv. aan 'cat0_z4'.
	 *                           Als het objectid leeg is, dan geld de permissie voor alle objecten.
	 *     DenyOrGranted       - Als deze op "True" staat, dan is de permissie expliciet gegeven. Als de permissie op FALSE
	 *                           staat is de permissie expliciet denied. 
	 */

	 /*
	 * Constants used for securing the system
	 */
	const spotsec_view_spots_index				= 0;	//
	const spotsec_perform_login					= 1;	//
	const spotsec_perform_search				= 2;	//
	const spotsec_view_spotdetail				= 3; 	//
	const spotsec_retrieve_nzb					= 4;	//
	const spotsec_download_integration			= 5;
	const spotsec_mark_spots_asread				= 6;	//
	const spotsec_view_spotimage				= 7;	//
	const spotsec_view_rssfeed					= 8;	//
	const spotsec_view_statics					= 9;	//
	const spotsec_create_new_user				= 10;	//
	const spotsec_edit_own_userprefs 			= 11;	//
	const spotsec_edit_own_user					= 12;	//
	const spotsec_list_all_users				= 13;	//
	const spotsec_post_comment					= 14;	//
	const spotsec_perform_logout				= 15;	//
	const spotsec_use_sabapi					= 16;	//
	const spotsec_keep_own_watchlist			= 17;	//
	const spotsec_keep_own_downloadlist 		= 18;	//
	const spotsec_keep_own_seenlist				= 19;	//
	const spotsec_view_spotcount_filtered		= 20;	//
	const spotsec_retrieve_spots				= 21;
	const spotsec_view_comments					= 22;	//
	const spotsec_select_template				= 23;
	const spotsec_consume_api					= 24;	//
	const spotsec_edit_other_users				= 25;	//
	const spotsec_view_spotcount_total			= 26;	//
	const spotsec_delete_user					= 27;
	const spotsec_edit_groupmembership			= 28;
	const spotsec_display_groupmembership		= 29;
	const spotsec_edit_securitygroups			= 30;
	const spotsec_send_notifications_services	= 31;
	const spotsec_send_notifications_types		= 32;
	const spotsec_allow_custom_stylesheet		= 33;
	const spotsec_keep_own_filters				= 34;
	const spotsec_set_filters_as_default		= 35;
	
	// Array mapping the security id to a human readable text
	private $_secHumanReadable = array(
		0		=> "Overzicht van spots tonen",
		1		=> "Inloggen",
		2		=> "Zoekopdracht uitvoeren",
		3		=> "Spot in detail zien",
		4		=> "NZB file opvragen",
		5		=> "Integratie met download manager",
		6		=> "Spots markeren als gelezen",
		7		=> "Afbeelding van een spot tonen",
		8		=> "RSS feed",
		9		=> "Static resources",
		10		=> "Nieuwe gebruiker aanmaken",
		11		=> "Eigen voorkeuren wijzigen",
		12		=> "Eigen gebruiker wijzigen",
		13		=> "Alle gebruikers oplijsten",
		14		=> "Commentaar op een spot posten",
		15		=> "Uitloggen",
		16		=> "SABnzbd+ API gebruiken (niet download manager integratie)",
		17		=> "Watchlist bijhouden",
		18		=> "Downloadlist bijhouden",
		19		=> "Seenlist bijhouden",
		20		=> "Spotcount in filterlijst tonen",
		21		=> "Nieuwe spots ophalen knop tonen",
		22		=> "Comments op een spot laten zien",
		23		=> "Eigen template selecteren",
		24		=> "SpotWeb gebruiken via API key",
		25		=> "Andere gebruikers wijzigen",
		26		=> "Totaal aantal spots tonen",
		27		=> "Gebruikers wissen",
		28		=> "Groupen waar een user lid van is wijzigen",
		29		=> "Groupen waar een user lid van is tonen",
		30 		=> "Security groupen kunnen wijzigen",
		31 		=> "Notificaties versturen (per service)",
		32 		=> "Notificaties versturen (per type)",
		33		=> "Eigen CSS stylesheet toestaan per gebruiker",
		34		=> "Zelf spotfilters kunnen bewerken",
		35		=> "Filters als standaard in kunnen stellen voor nieuwe gebruikers"
	);
	
	function __construct(SpotDb $db, SpotSettings $settings, array $user) {
		$this->_db = $db;
		$this->_user = $user;
		$this->_settings = $settings;
		
		$this->_permissions = $db->getPermissions($user['userid']);
	} # ctor
	
	function allowed($perm, $object) {
		return isset($this->_permissions[$perm][$object]) && $this->_permissions[$perm][$object];
	} # allowed
	
	function fatalPermCheck($perm, $object) {
		if (!$this->allowed($perm, $object)) {
			throw new PermissionDeniedException($perm, $object);
		} # if
	} # fatalPermCheck
	
	function toHuman($perm) {
		return $this->_secHumanReadable[$perm];
	} # toHuman
	
	function getAllPermissions() {
		return $this->_secHumanReadable;
	} # getAllPermissions
	
	function securityValid() {
		# SPOTWEB_SECURITY_VERSION is gedefinieerd bovenin dit bestand
		return ($this->_settings->get('securityversion') == SPOTWEB_SECURITY_VERSION);
	} # securityValid
	
} # class SpotSecurity