Access control plugin - licensing check and plugin disable if needed

When our access control plugin starts up we are going to check a web service and determine if the user has purchased a license for the plugin. If a license hasn’t been purchased we want to let the user know that the plugin is not licensed and prevent the plugin from being displayed (or maybe have it displayed but disabled). What is the best way in code to do that so that the user is informed in a clear/clean way? Thanks,

-Lou Keeble

This might all be settled with no need for you to develop anything. This is from the XProtect VMS 2018 R2 Administrator Manual:

XProtect Access licenses XProtect Access requires the following access control-related licenses:

• A base license for XProtect Access that covers an unrestricted number of access servers.

• An access control door license per door you want to integrate and control in XProtect Access. Two access control door licenses are included with the XProtect Access base license. All door licenses are automatically installed when you install your XProtect Access product. However, the installed door licenses are by default disabled which means that you must enable the doors that you want to use. You can only enable as many doors as you have door licenses for. Example: You have five access control door licenses and you have added 10 doors. Once you have added five doors, you cannot select any more. You must remove some of your doors before you can add another door. To find information about the current status of your access control door licenses, expand the Access Control node. To buy additional XProtect Access base licenses or door licenses, contact your vendor.

--

The Management Client License Overview includes Access licensing.

Are you looking for something else?

Thanks Bo. We (the access control software provider) have our own licensing agreements with customers and we want to prevent the activation of the plugin completely if it’s not licensed by us (independent of Milestone licensing). So I don’t think your suggestion is going to work for us.

We can easily check to see if the customer is licensed (via a web API call to our access control web service). The question is - what should we do if we find that the customer is not licensed? We want to show the user this information so that they can resolve the issue if possible. It seems we should throw an exception or maybe log an error when the plugin starts up?

Thanks for your help,

-Lou

I did an experiment.

In DemoAccessControlPlugin, in ConfigurationManager, FetchConfigurationAsync I tried to put-

FireFetchConfigurationStatusChanged(new ACFetchConfigurationStatusChangedEventArgs("No license"));
return;

I believe this would be a place for you to check you licensing and make it impossible to add the system and later update the configuration should your licensing not be in place.

Yes this works - thanks Bo !

-Lou