in CustomSecuritySample/Authorization.cs [470:654]
private static void InitializeMaps()
{
// create model operation names data
_modelItemOperNames.Add(ModelItemOperation.ReadProperties, OperationNames.OperReadProperties);
if (_modelItemOperNames.Count != Enum.GetValues(typeof(ModelItemOperation)).Length)
{
//Model item name mismatch
throw new Exception("Model item name mismatch");
}
// create model operation names data
_modelOperNames.Add(ModelOperation.Delete, OperationNames.OperDelete);
_modelOperNames.Add(ModelOperation.ReadAuthorizationPolicy, OperationNames.OperReadAuthorizationPolicy);
_modelOperNames.Add(ModelOperation.ReadContent, OperationNames.OperReadContent);
_modelOperNames.Add(ModelOperation.ReadDatasource, OperationNames.OperReadDatasources);
_modelOperNames.Add(ModelOperation.ReadModelItemAuthorizationPolicies, OperationNames.OperReadModelItemSecurityPolicies);
_modelOperNames.Add(ModelOperation.ReadProperties, OperationNames.OperReadProperties);
_modelOperNames.Add(ModelOperation.UpdateContent, OperationNames.OperUpdateContent);
_modelOperNames.Add(ModelOperation.UpdateDatasource, OperationNames.OperUpdateDatasources);
_modelOperNames.Add(ModelOperation.UpdateDeleteAuthorizationPolicy, OperationNames.OperUpdateDeleteAuthorizationPolicy);
_modelOperNames.Add(ModelOperation.UpdateModelItemAuthorizationPolicies, OperationNames.OperUpdateModelItemSecurityPolicies);
_modelOperNames.Add(ModelOperation.UpdateProperties, OperationNames.OperUpdatePolicy);
if (_modelOperNames.Count != Enum.GetValues(typeof(ModelOperation)).Length)
{
//Model name mismatch
throw new Exception("Model name mismatch");
}
// create operation names data
_catalogOperationNames.Add(CatalogOperation.CreateRoles, OperationNames.OperCreateRoles);
_catalogOperationNames.Add(CatalogOperation.DeleteRoles, OperationNames.OperDeleteRoles);
_catalogOperationNames.Add(CatalogOperation.ReadRoleProperties, OperationNames.OperReadRoleProperties);
_catalogOperationNames.Add(CatalogOperation.UpdateRoleProperties, OperationNames.OperUpdateRoleProperties);
_catalogOperationNames.Add(CatalogOperation.ReadSystemProperties, OperationNames.OperReadSystemProperties);
_catalogOperationNames.Add(CatalogOperation.UpdateSystemProperties, OperationNames.OperUpdateSystemProperties);
_catalogOperationNames.Add(CatalogOperation.GenerateEvents, OperationNames.OperGenerateEvents);
_catalogOperationNames.Add(CatalogOperation.ReadSystemSecurityPolicy, OperationNames.OperReadSystemSecurityPolicy);
_catalogOperationNames.Add(CatalogOperation.UpdateSystemSecurityPolicy, OperationNames.OperUpdateSystemSecurityPolicy);
_catalogOperationNames.Add(CatalogOperation.CreateSchedules, OperationNames.OperCreateSchedules);
_catalogOperationNames.Add(CatalogOperation.DeleteSchedules, OperationNames.OperDeleteSchedules);
_catalogOperationNames.Add(CatalogOperation.ReadSchedules, OperationNames.OperReadSchedules);
_catalogOperationNames.Add(CatalogOperation.UpdateSchedules, OperationNames.OperUpdateSchedules);
_catalogOperationNames.Add(CatalogOperation.ListJobs, OperationNames.OperListJobs);
_catalogOperationNames.Add(CatalogOperation.CancelJobs, OperationNames.OperCancelJobs);
_catalogOperationNames.Add(CatalogOperation.ExecuteReportDefinition, OperationNames.ExecuteReportDefinition);
if (_catalogOperationNames.Count != Enum.GetValues(typeof(CatalogOperation)).Length)
{
//Catalog name mismatch
throw new Exception("Catalog name mismatch");
}
_folderOperationNames.Add(FolderOperation.CreateFolder, OperationNames.OperCreateFolder);
_folderOperationNames.Add(FolderOperation.Delete, OperationNames.OperDelete);
_folderOperationNames.Add(FolderOperation.ReadProperties, OperationNames.OperReadProperties);
_folderOperationNames.Add(FolderOperation.UpdateProperties, OperationNames.OperUpdateProperties);
_folderOperationNames.Add(FolderOperation.CreateReport, OperationNames.OperCreateReport);
_folderOperationNames.Add(FolderOperation.CreateResource, OperationNames.OperCreateResource);
_folderOperationNames.Add(FolderOperation.ReadAuthorizationPolicy, OperationNames.OperReadAuthorizationPolicy);
_folderOperationNames.Add(FolderOperation.UpdateDeleteAuthorizationPolicy, OperationNames.OperUpdateDeleteAuthorizationPolicy);
_folderOperationNames.Add(FolderOperation.CreateDatasource, OperationNames.OperCreateDatasource);
_folderOperationNames.Add(FolderOperation.CreateModel, OperationNames.OperCreateModel);
if (_folderOperationNames.Count != Enum.GetValues(typeof(FolderOperation)).Length)
{
//Folder name mismatch
throw new Exception("Folder name mismatch");
}
_reportOperationNames.Add(ReportOperation.Delete, OperationNames.OperDelete);
_reportOperationNames.Add(ReportOperation.ReadProperties, OperationNames.OperReadProperties);
_reportOperationNames.Add(ReportOperation.UpdateProperties, OperationNames.OperUpdateProperties);
_reportOperationNames.Add(ReportOperation.UpdateParameters, OperationNames.OperUpdateParameters);
_reportOperationNames.Add(ReportOperation.ReadDatasource, OperationNames.OperReadDatasources);
_reportOperationNames.Add(ReportOperation.UpdateDatasource, OperationNames.OperUpdateDatasources);
_reportOperationNames.Add(ReportOperation.ReadReportDefinition, OperationNames.OperReadReportDefinition);
_reportOperationNames.Add(ReportOperation.UpdateReportDefinition, OperationNames.OperUpdateReportDefinition);
_reportOperationNames.Add(ReportOperation.CreateSubscription, OperationNames.OperCreateSubscription);
_reportOperationNames.Add(ReportOperation.DeleteSubscription, OperationNames.OperDeleteSubscription);
_reportOperationNames.Add(ReportOperation.ReadSubscription, OperationNames.OperReadSubscription);
_reportOperationNames.Add(ReportOperation.UpdateSubscription, OperationNames.OperUpdateSubscription);
_reportOperationNames.Add(ReportOperation.CreateAnySubscription, OperationNames.OperCreateAnySubscription);
_reportOperationNames.Add(ReportOperation.DeleteAnySubscription, OperationNames.OperDeleteAnySubscription);
_reportOperationNames.Add(ReportOperation.ReadAnySubscription, OperationNames.OperReadAnySubscription);
_reportOperationNames.Add(ReportOperation.UpdateAnySubscription, OperationNames.OperUpdateAnySubscription);
_reportOperationNames.Add(ReportOperation.UpdatePolicy, OperationNames.OperUpdatePolicy);
_reportOperationNames.Add(ReportOperation.ReadPolicy, OperationNames.OperReadPolicy);
_reportOperationNames.Add(ReportOperation.DeleteHistory, OperationNames.OperDeleteHistory);
_reportOperationNames.Add(ReportOperation.ListHistory, OperationNames.OperListHistory);
_reportOperationNames.Add(ReportOperation.ExecuteAndView, OperationNames.OperExecuteAndView);
_reportOperationNames.Add(ReportOperation.CreateResource, OperationNames.OperCreateResource);
_reportOperationNames.Add(ReportOperation.CreateSnapshot, OperationNames.OperCreateSnapshot);
_reportOperationNames.Add(ReportOperation.ReadAuthorizationPolicy, OperationNames.OperReadAuthorizationPolicy);
_reportOperationNames.Add(ReportOperation.UpdateDeleteAuthorizationPolicy, OperationNames.OperUpdateDeleteAuthorizationPolicy);
_reportOperationNames.Add(ReportOperation.Execute, OperationNames.OperExecute);
_reportOperationNames.Add(ReportOperation.CreateLink, OperationNames.OperCreateLink);
_reportOperationNames.Add(ReportOperation.Comment, OperationNames.OperComment);
_reportOperationNames.Add(ReportOperation.ManageComments, OperationNames.OperManageComments);
if (_reportOperationNames.Count != Enum.GetValues(typeof(ReportOperation)).Length)
{
//Report name mismatch
throw new Exception("Report name mismatch");
}
_resourceOperationNames.Add(ResourceOperation.Delete, OperationNames.OperDelete);
_resourceOperationNames.Add(ResourceOperation.ReadProperties, OperationNames.OperReadProperties);
_resourceOperationNames.Add(ResourceOperation.UpdateProperties, OperationNames.OperUpdateProperties);
_resourceOperationNames.Add(ResourceOperation.ReadContent, OperationNames.OperReadContent);
_resourceOperationNames.Add(ResourceOperation.UpdateContent, OperationNames.OperUpdateContent);
_resourceOperationNames.Add(ResourceOperation.ReadAuthorizationPolicy, OperationNames.OperReadAuthorizationPolicy);
_resourceOperationNames.Add(ResourceOperation.UpdateDeleteAuthorizationPolicy, OperationNames.OperUpdateDeleteAuthorizationPolicy);
_resourceOperationNames.Add(ResourceOperation.Comment, OperationNames.OperComment);
_resourceOperationNames.Add(ResourceOperation.ManageComments, OperationNames.OperManageComments);
if (_resourceOperationNames.Count != Enum.GetValues(typeof(ResourceOperation)).Length)
{
//Resource name mismatch
throw new Exception("Resource name mismatch");
}
_dataSourceOperationNames.Add(DatasourceOperation.Delete, OperationNames.OperDelete);
_dataSourceOperationNames.Add(DatasourceOperation.ReadProperties, OperationNames.OperReadProperties);
_dataSourceOperationNames.Add(DatasourceOperation.UpdateProperties, OperationNames.OperUpdateProperties);
_dataSourceOperationNames.Add(DatasourceOperation.ReadContent, OperationNames.OperReadContent);
_dataSourceOperationNames.Add(DatasourceOperation.UpdateContent, OperationNames.OperUpdateContent);
_dataSourceOperationNames.Add(DatasourceOperation.ReadAuthorizationPolicy, OperationNames.OperReadAuthorizationPolicy);
_dataSourceOperationNames.Add(DatasourceOperation.UpdateDeleteAuthorizationPolicy, OperationNames.OperUpdateDeleteAuthorizationPolicy);
if (_dataSourceOperationNames.Count != Enum.GetValues(typeof(DatasourceOperation)).Length)
{
//Datasource name mismatch
throw new Exception("Datasource name mismatch");
}
// Initialize permission collection.
foreach (CatalogOperation oper in _catalogOperationNames.Keys)
{
if (!_fullPermissions.Contains(_catalogOperationNames[oper]))
_fullPermissions.Add(_catalogOperationNames[oper]);
}
foreach (ModelItemOperation oper in _modelItemOperNames.Keys)
{
if (!_fullPermissions.Contains(_modelItemOperNames[oper]))
_fullPermissions.Add(_modelItemOperNames[oper]);
}
foreach (ModelOperation oper in _modelOperNames.Keys)
{
if (!_fullPermissions.Contains(_modelOperNames[oper]))
_fullPermissions.Add(_modelOperNames[oper]);
}
foreach (CatalogOperation oper in _catalogOperationNames.Keys)
{
if (!_fullPermissions.Contains(_catalogOperationNames[oper]))
_fullPermissions.Add(_catalogOperationNames[oper]);
}
foreach (ReportOperation oper in _reportOperationNames.Keys)
{
if (!_fullPermissions.Contains((string)_reportOperationNames[oper]))
_fullPermissions.Add((string)_reportOperationNames[oper]);
}
foreach (FolderOperation oper in _folderOperationNames.Keys)
{
if (!_fullPermissions.Contains((string)_folderOperationNames[oper]))
_fullPermissions.Add((string)_folderOperationNames[oper]);
}
foreach (ResourceOperation oper in _resourceOperationNames.Keys)
{
if (!_fullPermissions.Contains((string)_resourceOperationNames[oper]))
_fullPermissions.Add((string)_resourceOperationNames[oper]);
}
foreach (DatasourceOperation oper in _dataSourceOperationNames.Keys)
{
if (!_fullPermissions.Contains((string)_dataSourceOperationNames[oper]))
_fullPermissions.Add((string)_dataSourceOperationNames[oper]);
}
}