Hi,
we implemented a plugin integration which creates items with security actions attached. After some months we encountered some difficulties and had to replace the old security action definitions with new security actions (completely new SecurityActionIds and SecurityActionDisplayNames).
After updating EventServer and ManagementClient we get the following error message as we try to access the old items in the role category of the management client:
===================================
VMO60325: Could not retrieve information for the security namespace. The namespace does not exist. (VideoOS.Platform)
------------------------------
Programmordner:
at VideoOS.Platform.Proxy.ConfigApi.ConfigurationApiItemWrapper.Children()
at VideoOS.Platform.ConfigurationItems.MIPItemFolder.get_MIPItems()
at VideoOS.Platform.Configuration.GetItemConfigurationsBase(ServerId serverId, Item parentItem, Guid itemKind)
===================================
VMO60325: Could not retrieve information for the security namespace. The namespace does not exist. (mscorlib)
------------------------------
Programmordner:
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at VideoOS.ConfigurationApi.ClientService.IConfigurationService.GetChildItems(String path)
at VideoOS.Platform.Proxy.ConfigApi.ConfigurationServiceClientDecorator.<>c__DisplayClass7_0.b__0(ConfigurationServiceClient client)
at VideoOS.Platform.Proxy.ConfigApi.ConfigurationServiceClientDecorator.CallWithRetry[TResult](Func`2 call)
at VideoOS.Platform.Proxy.ConfigApi.ConfigurationServiceClientDecorator.GetChildItems(String path)
at VideoOS.Platform.Proxy.ConfigApi.ConfigurationApiItemWrapper.Children()
I already tried to update the old items by running following lines on each item:
SecurityAccess.UnregisterItem(item);
SecurityAccess.Save();
SecurityAccess.RegisterItem(item);
SecurityAccess.Save();
Afterwards I was abled to access the old items on the role tab and saw the new SecurityActions, but as soon as I tried to configure a SecurityAction my ManagementClient showed following error:
===================================
VMO60021: Could not create the access entry. The object with the ID 67a21386-185f-48df-b6dd-1359d199961b does not exist. (VideoOS.Platform)
------------------------------
Programmordner:
at VideoOS.Platform.Util.Security.SecurityClientXPCO.AddAccessControlEntries(Guid kind, String objectId, AccessControlEntry[] entries)
at VideoOS.Platform.Util.Security.SecurityClientXPCOWrapper.AddAccessControlEntries(Guid namespaceId, String objectId, AccessControlEntry[] entries)
at VideoOS.Platform.Util.SecurityAccess.SetPermittedAction(String identity, Item item, String actionId, Boolean permit)
at VideoOS.Administration.AddIn.PlatformAddIn.UserControlPlatformSecuritySetup.OnAfterCheck(Object sender, TreeViewEventArgs e)
===================================
VMO60021: Could not create the access entry. The object with the ID 67a21386-185f-48df-b6dd-1359d199961b does not exist. (mscorlib)
------------------------------
Programmordner:
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at VideoOS.Platform.Util.Security.ISecurityService.AddPermissions(String namespaceId, String objectId, AccessControlEntry[] entries)
at VideoOS.Platform.Util.Security.SecurityClientXPCO.<>c__DisplayClass22_0.b__0(SecurityServiceClient client)
at VideoOS.Platform.Util.Svc.ClientPool`1.CallWithRetry(Action`1 method, Int32 retryCount)
at VideoOS.Platform.Util.Security.SecurityClientXPCO.AddAccessControlEntries(Guid kind, String objectId, AccessControlEntry[] entries)
Strange thing is that if I refresh (F5) the ManagementClient the items again disappear and I get the first error by trying to access the items in the role category.
Is there a certain way to update SecurityActions on existing items or did I miss something?
Thanks in advance!