base user all permissions disabled by default, and reg viewer
This commit is contained in:
		
							parent
							
								
									e672fbb343
								
							
						
					
					
						commit
						adf4534816
					
				| @ -1,5 +1,8 @@ | |||||||
| <?php declare(strict_types=1); | <?php declare(strict_types=1); | ||||||
| 
 | 
 | ||||||
|  | // action_object_attribute
 | ||||||
|  | // action = create / view / edit / delete
 | ||||||
|  | // object = image / user / tag / setting
 | ||||||
| abstract class Permissions | abstract class Permissions | ||||||
| { | { | ||||||
|     public const CHANGE_SETTING = "change_setting";  # modify web-level settings, eg the config table
 |     public const CHANGE_SETTING = "change_setting";  # modify web-level settings, eg the config table
 | ||||||
| @ -42,6 +45,7 @@ abstract class Permissions | |||||||
| 
 | 
 | ||||||
|     public const VIEW_EVENTLOG = "view_eventlog"; |     public const VIEW_EVENTLOG = "view_eventlog"; | ||||||
|     public const IGNORE_DOWNTIME = "ignore_downtime"; |     public const IGNORE_DOWNTIME = "ignore_downtime"; | ||||||
|  |     public const VIEW_REGISTRATIONS = "view_registrations"; | ||||||
| 
 | 
 | ||||||
|     public const CREATE_IMAGE_REPORT = "create_image_report"; |     public const CREATE_IMAGE_REPORT = "create_image_report"; | ||||||
|     public const VIEW_IMAGE_REPORT = "view_image_report";  # deal with reported images
 |     public const VIEW_IMAGE_REPORT = "view_image_report";  # deal with reported images
 | ||||||
|  | |||||||
| @ -67,101 +67,12 @@ class UserClass | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // action_object_attribute
 | $_all_false = []; | ||||||
| // action = create / view / edit / delete
 | foreach(get_class_vars("Permissions") as $k => $v) { | ||||||
| // object = image / user / tag / setting
 |     $_all_false[$v] = false; | ||||||
| new UserClass("base", null, [ | } | ||||||
|     Permissions::CHANGE_SETTING => false,  # modify web-level settings, eg the config table
 | new UserClass("base", null, $_all_false); | ||||||
|     Permissions::OVERRIDE_CONFIG => false, # modify sys-level settings, eg shimmie.conf.php
 | unset($_all_false); | ||||||
|     Permissions::BIG_SEARCH => false,      # search for more than 3 tags at once (speed mode only)
 |  | ||||||
| 
 |  | ||||||
|     Permissions::MANAGE_EXTENSION_LIST => false, |  | ||||||
|     Permissions::MANAGE_ALIAS_LIST => false, |  | ||||||
|     Permissions::MANAGE_AUTO_TAG => false, |  | ||||||
|     Permissions::MASS_TAG_EDIT => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::VIEW_IP => false,         # view IP addresses associated with things
 |  | ||||||
|     Permissions::BAN_IP => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::CREATE_USER => false, |  | ||||||
|     Permissions::EDIT_USER_NAME => false, |  | ||||||
|     Permissions::EDIT_USER_PASSWORD => false, |  | ||||||
|     Permissions::EDIT_USER_INFO => false,  # email address, etc
 |  | ||||||
|     Permissions::EDIT_USER_CLASS => false, |  | ||||||
|     Permissions::DELETE_USER => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::CREATE_COMMENT => false, |  | ||||||
|     Permissions::DELETE_COMMENT => false, |  | ||||||
|     Permissions::BYPASS_COMMENT_CHECKS => false,  # spam etc
 |  | ||||||
| 
 |  | ||||||
|     Permissions::REPLACE_IMAGE => false, |  | ||||||
|     Permissions::CREATE_IMAGE => false, |  | ||||||
|     Permissions::EDIT_IMAGE_TAG => false, |  | ||||||
|     Permissions::EDIT_IMAGE_SOURCE => false, |  | ||||||
|     Permissions::EDIT_IMAGE_OWNER => false, |  | ||||||
|     Permissions::EDIT_IMAGE_LOCK => false, |  | ||||||
|     Permissions::EDIT_IMAGE_TITLE => false, |  | ||||||
|     Permissions::EDIT_IMAGE_RELATIONSHIPS => false, |  | ||||||
|     Permissions::EDIT_IMAGE_ARTIST => false, |  | ||||||
|     Permissions::BULK_EDIT_IMAGE_TAG => false, |  | ||||||
|     Permissions::BULK_EDIT_IMAGE_SOURCE => false, |  | ||||||
|     Permissions::DELETE_IMAGE => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::BAN_IMAGE => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::VIEW_EVENTLOG => false, |  | ||||||
|     Permissions::IGNORE_DOWNTIME => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::CREATE_IMAGE_REPORT => false, |  | ||||||
|     Permissions::VIEW_IMAGE_REPORT => false,  # deal with reported images
 |  | ||||||
| 
 |  | ||||||
|     Permissions::WIKI_ADMIN => false, |  | ||||||
|     Permissions::EDIT_WIKI_PAGE => false, |  | ||||||
|     Permissions::DELETE_WIKI_PAGE => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::MANAGE_BLOCKS => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::MANAGE_ADMINTOOLS => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::SEND_PM => false, |  | ||||||
|     Permissions::READ_PM => false, |  | ||||||
|     Permissions::VIEW_OTHER_PMS => false, |  | ||||||
|     Permissions::EDIT_FEATURE => false, |  | ||||||
|     Permissions::BULK_EDIT_VOTE => false, |  | ||||||
|     Permissions::EDIT_OTHER_VOTE => false, |  | ||||||
|     Permissions::VIEW_SYSINTO => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::HELLBANNED => false, |  | ||||||
|     Permissions::VIEW_HELLBANNED => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::PROTECTED => false,          # only admins can modify protected users (stops a moderator changing an admin's password)
 |  | ||||||
| 
 |  | ||||||
|     Permissions::EDIT_IMAGE_RATING => false, |  | ||||||
|     Permissions::BULK_EDIT_IMAGE_RATING => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::VIEW_TRASH => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::PERFORM_BULK_ACTIONS => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::BULK_ADD => false, |  | ||||||
|     Permissions::EDIT_FILES => false, |  | ||||||
|     Permissions::EDIT_TAG_CATEGORIES => false, |  | ||||||
|     Permissions::RESCAN_MEDIA => false, |  | ||||||
|     Permissions::SEE_IMAGE_VIEW_COUNTS => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::EDIT_FAVOURITES => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::ARTISTS_ADMIN => false, |  | ||||||
|     Permissions::BLOTTER_ADMIN => false, |  | ||||||
|     Permissions::FORUM_ADMIN => false, |  | ||||||
|     Permissions::NOTES_ADMIN => false, |  | ||||||
|     Permissions::POOLS_ADMIN => false, |  | ||||||
|     Permissions::TIPS_ADMIN => false, |  | ||||||
|     Permissions::CRON_ADMIN => false, |  | ||||||
| 
 |  | ||||||
|     Permissions::APPROVE_IMAGE => false, |  | ||||||
|     Permissions::APPROVE_COMMENT => false, |  | ||||||
| ]); |  | ||||||
| 
 | 
 | ||||||
| // Ghost users can't do anything
 | // Ghost users can't do anything
 | ||||||
| new UserClass("ghost", "base", [ | new UserClass("ghost", "base", [ | ||||||
| @ -189,6 +100,10 @@ new UserClass("user", "base", [ | |||||||
|     Permissions::READ_PM => true, |     Permissions::READ_PM => true, | ||||||
| ]); | ]); | ||||||
| 
 | 
 | ||||||
|  | new UserClass("hellbanned", "user", [ | ||||||
|  |     Permissions::HELLBANNED => true, | ||||||
|  | ]); | ||||||
|  | 
 | ||||||
| new UserClass("admin", "base", [ | new UserClass("admin", "base", [ | ||||||
|     Permissions::CHANGE_SETTING => true, |     Permissions::CHANGE_SETTING => true, | ||||||
|     Permissions::OVERRIDE_CONFIG => true, |     Permissions::OVERRIDE_CONFIG => true, | ||||||
| @ -230,6 +145,7 @@ new UserClass("admin", "base", [ | |||||||
| 
 | 
 | ||||||
|     Permissions::VIEW_EVENTLOG => true, |     Permissions::VIEW_EVENTLOG => true, | ||||||
|     Permissions::IGNORE_DOWNTIME => true, |     Permissions::IGNORE_DOWNTIME => true, | ||||||
|  |     Permissions::VIEW_REGISTRATIONS => true, | ||||||
| 
 | 
 | ||||||
|     Permissions::CREATE_IMAGE_REPORT => true, |     Permissions::CREATE_IMAGE_REPORT => true, | ||||||
|     Permissions::VIEW_IMAGE_REPORT => true, |     Permissions::VIEW_IMAGE_REPORT => true, | ||||||
| @ -282,8 +198,4 @@ new UserClass("admin", "base", [ | |||||||
|     Permissions::APPROVE_COMMENT => true, |     Permissions::APPROVE_COMMENT => true, | ||||||
| ]); | ]); | ||||||
| 
 | 
 | ||||||
| new UserClass("hellbanned", "user", [ |  | ||||||
|     Permissions::HELLBANNED => true, |  | ||||||
| ]); |  | ||||||
| 
 |  | ||||||
| @include_once "data/config/user-classes.conf.php"; | @include_once "data/config/user-classes.conf.php"; | ||||||
|  | |||||||
| @ -1,16 +1,34 @@ | |||||||
| <?php declare(strict_types=1); | <?php declare(strict_types=1); | ||||||
| 
 | 
 | ||||||
|  | use function MicroHTML\{PRE}; | ||||||
|  | 
 | ||||||
| class ETServer extends Extension | class ETServer extends Extension | ||||||
| { | { | ||||||
|     public function onPageRequest(PageRequestEvent $event) |     public function onPageRequest(PageRequestEvent $event) | ||||||
|     { |     { | ||||||
|         global $database, $page; |         global $database, $page, $user; | ||||||
|         if ($event->page_matches("register.php")) { |         if ($event->page_matches("register.php")) { | ||||||
|  |             error_log("register.php"); | ||||||
|  |             if(isset($_POST["data"])) { | ||||||
|                 $database->execute( |                 $database->execute( | ||||||
|                     "INSERT INTO registration(data) VALUES(:data)", |                     "INSERT INTO registration(data) VALUES(:data)", | ||||||
|                     ["data"=>$_POST["data"]] |                     ["data"=>$_POST["data"]] | ||||||
|                 ); |                 ); | ||||||
|  |                 $page->set_title("Thanks!"); | ||||||
|  |                 $page->set_heading("Thanks!"); | ||||||
|                 $page->add_block(new Block("Thanks!", "Your data has been recorded~")); |                 $page->add_block(new Block("Thanks!", "Your data has been recorded~")); | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |             elseif ($user->can(Permissions::VIEW_REGISTRATIONS)) { | ||||||
|  |                 $page->set_title("Registrations"); | ||||||
|  |                 $page->set_heading("Registrations"); | ||||||
|  |                 foreach($database->get_all("SELECT responded, data FROM registration") as $row) { | ||||||
|  |                     $page->add_block(new Block( | ||||||
|  |                         $row["responded"], | ||||||
|  |                         (string)PRE(["style"=>"text-align: left; overflow: scroll;"], $row["data"]) | ||||||
|  |                     )); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user