Ignore:
Timestamp:
Feb 16, 2023, 3:50:53 PM (21 months ago)
Author:
alloc
Message:

Latest state including reworking to the permissions system

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements2/WebServer/src/UrlHandlers/SseHandler.cs

    r402 r404  
    44using System.Reflection;
    55using System.Threading;
     6using Webserver.Permissions;
    67using Webserver.SSE;
    78
     
    1718                private bool shutdown;
    1819
     20                private static readonly Type[] ctorTypes = { typeof (SseHandler) };
     21                private static readonly object[] ctorParams = new object[1];
     22
    1923                public SseHandler (string _moduleName = null) : base (_moduleName) {
    20                         Type[] ctorTypes = { typeof (SseHandler) };
    21                         object[] ctorParams = { this };
     24                        ctorParams[0] = this;
    2225
    23                         foreach (Type t in Assembly.GetExecutingAssembly ().GetTypes ()) {
    24                                 if (t.IsAbstract || !t.IsSubclassOf (typeof (AbsEvent))) {
    25                                         continue;
    26                                 }
     26                        ReflectionHelpers.FindTypesImplementingBase (typeof (AbsEvent), apiFoundCallback);
     27                }
    2728
    28                                 ConstructorInfo ctor = t.GetConstructor (ctorTypes);
    29                                 if (ctor == null) {
    30                                         continue;
    31                                 }
     29                private void apiFoundCallback (Type _type) {
     30                        ConstructorInfo ctor = _type.GetConstructor (ctorTypes);
     31                        if (ctor == null) {
     32                                return;
     33                        }
    3234
    33                                 AbsEvent apiInstance = (AbsEvent)ctor.Invoke (ctorParams);
    34                                 AddEvent (apiInstance.Name, apiInstance);
    35                         }
     35                        AbsEvent apiInstance = (AbsEvent)ctor.Invoke (ctorParams);
     36                        AddEvent (apiInstance.Name, apiInstance);
    3637                }
    3738
     
    5253                public void AddEvent (string _eventName, AbsEvent _eventInstance) {
    5354                        events.Add (_eventName, _eventInstance);
    54                         WebPermissions.Instance.AddKnownModule ($"webevent.{_eventName}", _eventInstance.DefaultPermissionLevel ());
     55                        AdminWebModules.Instance.AddKnownModule ($"webevent.{_eventName}", _eventInstance.DefaultPermissionLevel ());
    5556                }
    5657
     
    8990
    9091                private bool IsAuthorizedForEvent (string _eventName, int _permissionLevel) {
    91                         return WebPermissions.Instance.ModuleAllowedWithLevel ($"webevent.{_eventName}", _permissionLevel);
     92                        return AdminWebModules.Instance.ModuleAllowedWithLevel ($"webevent.{_eventName}", _permissionLevel);
    9293                }
    9394
Note: See TracChangeset for help on using the changeset viewer.