OHDSI / Atlas

ATLAS is an open source software tool for researchers to conduct scientific analyses on standardized observational data
http://atlas-demo.ohdsi.org/
Apache License 2.0
273 stars 137 forks source link

Logged in, but no permissions #2925

Open qcaas-nhs-sjt opened 7 months ago

qcaas-nhs-sjt commented 7 months ago

We are currently using Atlas 2.14.0 and WebAPI 2.14.0 via docker container images, the authentication seems to be working properly, I can login to the site and I can see that I'm logged in:

image

I'm setup in the database with the same rights as the default admin user.

and I can see that I am getting a response from: /WebAPI/user/me

{
    "id": 1002,
    "login": "shaun.turner1@nhs.net",
    "name": "Shaun Turner",
    "permissions": [
        {
            "id": 502,
            "permission": "source:post",
            "description": "Create source"
        },
        {
            "id": 503,
            "permission": "source:*:put",
            "description": "Edit source"
        },
        {
            "id": 1131,
            "permission": "tag:management",
            "description": "Permission to manage tags"
        },
        {
            "id": 200,
            "permission": "configuration:edit:ui",
            "description": "Access to 'Configuration' page"
        },
        {
            "id": 504,
            "permission": "source:*:delete",
            "description": "Delete source"
        },
        {
            "id": 514,
            "permission": "user:import:post",
            "description": "Import users from AD/LDAP"
        },
        {
            "id": 1064,
            "permission": "conceptset:*:protectedtag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 1059,
            "permission": "cohortdefinition:*:protectedtag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 1072,
            "permission": "ir:*:protectedtag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 1077,
            "permission": "pathway-analysis:*:protectedtag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 45,
            "permission": "source:*:get",
            "description": "Read configuration"
        },
        {
            "id": 505,
            "permission": "source:details:*:get",
            "description": "Read source details"
        },
        {
            "id": 516,
            "permission": "user:import:*:mapping:get",
            "description": "Read Atlas roles mappings to LDAP groups"
        },
        {
            "id": 554,
            "permission": "user:import:job:post",
            "description": "Create new user import job"
        },
        {
            "id": 1076,
            "permission": "pathway-analysis:*:protectedtag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 202,
            "permission": "permission:get",
            "description": "Get list of permissions"
        },
        {
            "id": 500,
            "permission": "cohortanalysis:post",
            "description": "Create Cohort analyses"
        },
        {
            "id": 90,
            "permission": "comparativecohortanalysis:*:copy:get",
            "description": "Copy estimations"
        },
        {
            "id": 92,
            "permission": "comparativecohortanalysis:*:put",
            "description": "Update estimation"
        },
        {
            "id": 206,
            "permission": "role:*:permissions:get",
            "description": "Get list of role's permissions"
        },
        {
            "id": 553,
            "permission": "user:import:job:get",
            "description": "List user import jobs"
        },
        {
            "id": 506,
            "permission": "*:person:*:get:dates",
            "description": "View calendar dates on person profiles"
        },
        {
            "id": 1120,
            "permission": "reusable:*:protectedtag:post",
            "description": "Assign tag to reusable"
        },
        {
            "id": 1069,
            "permission": "cohort-characterization:*:protectedtag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 511,
            "permission": "user:providers:get",
            "description": "Get list of authentication providers AD/LDAP"
        },
        {
            "id": 512,
            "permission": "user:import:*:groups:get",
            "description": "Search groups in AD/LDAP"
        },
        {
            "id": 501,
            "permission": "source:*:daimons:*:set-priority:post",
            "description": "Set priority daimons"
        },
        {
            "id": 513,
            "permission": "user:import:*:post",
            "description": "Search users in AD/LDAP"
        },
        {
            "id": 1073,
            "permission": "ir:*:protectedtag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 1068,
            "permission": "cohort-characterization:*:protectedtag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 555,
            "permission": "user:import:job:*:put",
            "description": "Update user import job"
        },
        {
            "id": 1121,
            "permission": "reusable:*:protectedtag:*:delete",
            "description": "Unassign tag from reusable"
        },
        {
            "id": 515,
            "permission": "user:import:*:mapping:post",
            "description": "Save Atlas roles mappings to LDAP groups"
        },
        {
            "id": 203,
            "permission": "role:post",
            "description": "Create role"
        },
        {
            "id": 209,
            "permission": "role:*:users:*:delete",
            "description": "Remove users from role"
        },
        {
            "id": 557,
            "permission": "user:import:job:*:delete",
            "description": "Delete user import job"
        },
        {
            "id": 510,
            "permission": "source:connection:*:get",
            "description": "Check source connection"
        },
        {
            "id": 201,
            "permission": "user:get",
            "description": "Get list of users"
        },
        {
            "id": 210,
            "permission": "role:1:permissions:*:put",
            "description": "Add permissions to public role"
        },
        {
            "id": 558,
            "permission": "user:import:job:*:history:get",
            "description": "Get user import history"
        },
        {
            "id": 205,
            "permission": "role:*:get",
            "description": "Get role by ID"
        },
        {
            "id": 91,
            "permission": "comparativecohortanalysis:*:delete",
            "description": "Delete estimation"
        },
        {
            "id": 1060,
            "permission": "cohortdefinition:*:protectedtag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 204,
            "permission": "role:get",
            "description": "Get list of roles"
        },
        {
            "id": 556,
            "permission": "user:import:job:*:get",
            "description": "Get user import job"
        },
        {
            "id": 1063,
            "permission": "conceptset:*:protectedtag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 517,
            "permission": "user:import:*:test:get",
            "description": "Check LDAP/AD connection"
        },
        {
            "id": 207,
            "permission": "role:*:users:get",
            "description": "Get list of role's users"
        },
        {
            "id": 211,
            "permission": "role:1:permissions:*:delete",
            "description": "Remove permissions from public role"
        },
        {
            "id": 208,
            "permission": "role:*:users:*:put",
            "description": "Add users to role"
        },
        {
            "id": 64,
            "permission": "cohortdefinition:sql:post",
            "description": "Generate SQL from Cohort expression"
        },
        {
            "id": 1035,
            "permission": "cohort-characterization:check:post",
            "description": "Run diagnostics for cohort characterization params"
        },
        {
            "id": 1043,
            "permission": "gis:cohort:*:density:*:get",
            "description": "Get gis density for source"
        },
        {
            "id": 110,
            "permission": "vocabulary:*:post",
            "description": "Vocabulary services"
        },
        {
            "id": 1011,
            "permission": "cohort-characterization:*:download:get",
            "description": "Download Cohort Characterization package"
        },
        {
            "id": 1057,
            "permission": "cohortdefinition:*:tag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 1017,
            "permission": "cohort-characterization:*:exists:get",
            "description": "Check name uniqueness of cohort characterization"
        },
        {
            "id": 109,
            "permission": "job:get",
            "description": "Find Job names"
        },
        {
            "id": 607,
            "permission": "cohortdefinition:*:export:conceptset:get",
            "description": "Export ConceptSet"
        },
        {
            "id": 536,
            "permission": "pathway-analysis:*:generation:get",
            "description": "Get Pathways Analysis generations list"
        },
        {
            "id": 37,
            "permission": "ir:*:get",
            "description": "Get incidence rate"
        },
        {
            "id": 1025,
            "permission": "source:daimon:priority:get",
            "description": "Get priority of Source Daimons"
        },
        {
            "id": 1109,
            "permission": "pathway-analysis:byTags:post",
            "description": "Get pathways with certain assigned tags"
        },
        {
            "id": 103,
            "permission": "executionservice:execution:run:post",
            "description": "Start Execution Service Job"
        },
        {
            "id": 540,
            "permission": "pathway-analysis:*:export:get",
            "description": "Export Pathways Analysis"
        },
        {
            "id": 1027,
            "permission": "cohortsample:*:*:*:get",
            "description": "Get single cohort samples"
        },
        {
            "id": 1094,
            "permission": "cohort-characterization:*:version:*:createAsset:put",
            "description": "Copy characterization version as new cohort"
        },
        {
            "id": 1030,
            "permission": "cohortsample:*:*:post",
            "description": "Create cohort sample"
        },
        {
            "id": 1024,
            "permission": "ir:*:design:get",
            "description": "Export Incidence Rates design"
        },
        {
            "id": 1056,
            "permission": "tag:*:delete",
            "description": "Delete tag"
        },
        {
            "id": 43,
            "permission": "plp:*:get",
            "description": "Get population level prediction"
        },
        {
            "id": 107,
            "permission": "feasibility:*:delete",
            "description": "Delete Feasibility"
        },
        {
            "id": 72,
            "permission": "plp:*:copy:get",
            "description": "Copy Patient Level Prediction"
        },
        {
            "id": 566,
            "permission": "prediction:*:generation:get",
            "description": "View Prediction Generations"
        },
        {
            "id": 1103,
            "permission": "pathway-analysis:*:version:*:delete",
            "description": "Delete pathway analysis version info"
        },
        {
            "id": 1106,
            "permission": "conceptset:byTags:post",
            "description": "Get concept sets with certain assigned tags"
        },
        {
            "id": 1098,
            "permission": "ir:*:version:*:delete",
            "description": "Delete incidence rate analysis version info"
        },
        {
            "id": 542,
            "permission": "estimation:get",
            "description": "Get Estimation list"
        },
        {
            "id": 1012,
            "permission": "cohort-characterization:generation:*:result:export:post",
            "description": "Export all cohort characterization generation results"
        },
        {
            "id": 524,
            "permission": "cohort-characterization:generation:*:delete",
            "description": "Delete cohort characterization generation and results"
        },
        {
            "id": 1108,
            "permission": "ir:byTags:post",
            "description": "Get incidence rates with certain assigned tags"
        },
        {
            "id": 65,
            "permission": "*:cohortresults:*:breakdown:get",
            "description": "Get breakdown with counts about people in cohort"
        },
        {
            "id": 1026,
            "permission": "cohortsample:*:*:get",
            "description": "List cohort samples"
        },
        {
            "id": 1058,
            "permission": "cohortdefinition:*:tag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 589,
            "permission": "job:type:*:name:*:get",
            "description": "Get IR info"
        },
        {
            "id": 567,
            "permission": "prediction:generation:*:result:get",
            "description": "View Prediction Generation Results"
        },
        {
            "id": 1047,
            "permission": "gis:source:check:*:get",
            "description": "Check availability of geodata in source"
        },
        {
            "id": 546,
            "permission": "estimation:*:export:get",
            "description": "Export Estimation"
        },
        {
            "id": 1132,
            "permission": "vocabulary:*:compare-arbitrary",
            "description": "Concept sets comparison permission (compare-arbitrary method)"
        },
        {
            "id": 108,
            "permission": "featureextraction:*:get",
            "description": "Access to Feature Extraction"
        },
        {
            "id": 1008,
            "permission": "conceptset:*:expression:*:get",
            "description": "Resolve concept set expression with data source"
        },
        {
            "id": 1065,
            "permission": "conceptset:check:post",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 1034,
            "permission": "feature-analysis:aggregates:get",
            "description": "List available aggregates for Feature Analyses"
        },
        {
            "id": 100,
            "permission": "cohortresults:*:get",
            "description": "Get Cohort reports"
        },
        {
            "id": 606,
            "permission": "conceptset:*:export:get",
            "description": "Export ConceptSet"
        },
        {
            "id": 1016,
            "permission": "pathway-analysis:*:exists:get",
            "description": "Check name uniqueness of pathway analysis"
        },
        {
            "id": 537,
            "permission": "pathway-analysis:generation:*:get",
            "description": "Get Pathways Analysis generation instance"
        },
        {
            "id": 1015,
            "permission": "cohortdefinition:*:exists:get",
            "description": "Check name uniqueness of cohort definition"
        },
        {
            "id": 551,
            "permission": "prediction:*:download:get",
            "description": "Download Prediction package"
        },
        {
            "id": 1020,
            "permission": "prediction:*:exists:get",
            "description": "Check name uniqueness of prediction"
        },
        {
            "id": 1036,
            "permission": "pathway-analysis:check:post",
            "description": "Run diagnostics for pathway params"
        },
        {
            "id": 1071,
            "permission": "ir:*:tag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 1014,
            "permission": "conceptset:*:exists:get",
            "description": "Check name uniqueness of concept set"
        },
        {
            "id": 528,
            "permission": "feature-analysis:get",
            "description": "Get feature analyses list"
        },
        {
            "id": 1127,
            "permission": "cohortdefinition:checkv2:post",
            "description": "Run diagnostics for cohort definition with tags"
        },
        {
            "id": 586,
            "permission": "cohortdefinition:*:check:get",
            "description": "Get cohort definition design checks"
        },
        {
            "id": 1119,
            "permission": "reusable:*:tag:*:delete",
            "description": "Unassign tag from reusable"
        },
        {
            "id": 538,
            "permission": "pathway-analysis:generation:*:result:get",
            "description": "Get Pathways Analysis generation results"
        },
        {
            "id": 1066,
            "permission": "cohort-characterization:*:tag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 1067,
            "permission": "cohort-characterization:*:tag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 1092,
            "permission": "cohort-characterization:*:version:*:put",
            "description": "Update characterization version info"
        },
        {
            "id": 39,
            "permission": "comparativecohortanalysis:get",
            "description": "List estimations"
        },
        {
            "id": 1124,
            "permission": "reusable:*:version:*:put",
            "description": "Update reusable version info"
        },
        {
            "id": 101,
            "permission": "evidence:*:get",
            "description": "Get evidence"
        },
        {
            "id": 1097,
            "permission": "ir:*:version:*:put",
            "description": "Update incidence rate analysis version info"
        },
        {
            "id": 51,
            "permission": "job:execution:get",
            "description": "Get list of jobs"
        },
        {
            "id": 1107,
            "permission": "cohort-characterization:byTags:post",
            "description": "Get cohort characterizations with certain assigned tags"
        },
        {
            "id": 1096,
            "permission": "ir:*:version:*:get",
            "description": "Get incidence rate analysis version"
        },
        {
            "id": 530,
            "permission": "feature-analysis:post",
            "description": "Create feature analysis"
        },
        {
            "id": 590,
            "permission": "cohort-characterization:*:design:get",
            "description": "Get cohort characterization design"
        },
        {
            "id": 30,
            "permission": "conceptset:post",
            "description": "Create Concept Set"
        },
        {
            "id": 1095,
            "permission": "ir:*:version:get",
            "description": "Get list of incidence rate analysis versions"
        },
        {
            "id": 34,
            "permission": "conceptset:get",
            "description": "List of Concept Sets"
        },
        {
            "id": 549,
            "permission": "prediction:*:get",
            "description": "Get Prediction instance"
        },
        {
            "id": 628,
            "permission": "ir:sql:post",
            "description": "Generate SQL from Incidence Rates expression"
        },
        {
            "id": 559,
            "permission": "notifications:viewed:post",
            "description": "Remember last viewed notification timestamp"
        },
        {
            "id": 509,
            "permission": "evidence:*:negativecontrols:post",
            "description": "Execute evidence job"
        },
        {
            "id": 1086,
            "permission": "conceptset:*:version:*:delete",
            "description": "Delete concept set version info"
        },
        {
            "id": 1013,
            "permission": "cohort-characterization:generation:*:result:count:get",
            "description": "Get total count of results for this generation"
        },
        {
            "id": 1081,
            "permission": "cohortdefinition:*:version:*:delete",
            "description": "Delete cohort version info"
        },
        {
            "id": 70,
            "permission": "plp:*:put",
            "description": "Update Patient Level Prediction"
        },
        {
            "id": 1028,
            "permission": "cohortsample:*:*:*:delete",
            "description": "Delete cohort sample"
        },
        {
            "id": 552,
            "permission": "prediction:*:export:get",
            "description": "Export Prediction"
        },
        {
            "id": 42,
            "permission": "plp:get",
            "description": "List of population level predictions"
        },
        {
            "id": 1123,
            "permission": "reusable:*:version:*:get",
            "description": "Get reusable version"
        },
        {
            "id": 105,
            "permission": "feasibility:*:get",
            "description": "View Feasibility"
        },
        {
            "id": 1099,
            "permission": "ir:*:version:*:createAsset:put",
            "description": "Copy incidence rate analysis version as new cohort"
        },
        {
            "id": 534,
            "permission": "pathway-analysis:get",
            "description": "Get Pathways Analyses list"
        },
        {
            "id": 539,
            "permission": "pathway-analysis:generation:*:design:get",
            "description": "Get Pathways Analysis generation design"
        },
        {
            "id": 80,
            "permission": "ir:*:copy:get",
            "description": "Copy incidence rate"
        },
        {
            "id": 615,
            "permission": "ir:*:info:get",
            "description": "Get IR info"
        },
        {
            "id": 535,
            "permission": "pathway-analysis:*:get",
            "description": "Get Pathways Analysis instance"
        },
        {
            "id": 1018,
            "permission": "feature-analysis:*:exists:get",
            "description": "Check name uniqueness of feature analysis"
        },
        {
            "id": 1110,
            "permission": "reusable:byTags:post",
            "description": "Get reusables with certain assigned tags"
        },
        {
            "id": 1133,
            "permission": "feature-analysis:*:export:conceptset:get",
            "description": "Get archive with Feature Analysis Concept Sets"
        },
        {
            "id": 560,
            "permission": "notifications:viewed:get",
            "description": "Get last viewed notification timestamp"
        },
        {
            "id": 1101,
            "permission": "pathway-analysis:*:version:*:get",
            "description": "Get pathway analysis version"
        },
        {
            "id": 1031,
            "permission": "cohortsample:*:*:*:refresh:post",
            "description": "Refresh cohort sample"
        },
        {
            "id": 35,
            "permission": "conceptset:*:get",
            "description": "Get conceptset expression"
        },
        {
            "id": 522,
            "permission": "cohort-characterization:*:generation:get",
            "description": "Get cohort characterization generations"
        },
        {
            "id": 102,
            "permission": "executionservice:*:get",
            "description": "Get Execution Service Job status"
        },
        {
            "id": 40,
            "permission": "comparativecohortanalysis:*:get",
            "description": "Get estimation"
        },
        {
            "id": 520,
            "permission": "cohort-characterization:get",
            "description": "Get cohort characterizations list"
        },
        {
            "id": 47,
            "permission": "cdmresults:*:get",
            "description": "View CDM results"
        },
        {
            "id": 523,
            "permission": "cohort-characterization:generation:*:get",
            "description": "Get cohort characterization generation"
        },
        {
            "id": 1037,
            "permission": "ir:check:post",
            "description": "Run diagnostics for incident rates"
        },
        {
            "id": 106,
            "permission": "feasibility:*:put",
            "description": "Edit Feasibility"
        },
        {
            "id": 533,
            "permission": "pathway-analysis:import:post",
            "description": "Import Pathways Analysis"
        },
        {
            "id": 1044,
            "permission": "gis:person:*:bounds:*:get",
            "description": "Get bounds for person"
        },
        {
            "id": 1091,
            "permission": "cohort-characterization:*:version:*:get",
            "description": "Get characterization version"
        },
        {
            "id": 1038,
            "permission": "prediction:check:post",
            "description": "Run diagnostics for prediction"
        },
        {
            "id": 1045,
            "permission": "feature-analysis:*:copy:get",
            "description": "Copy the specified feature analysis"
        },
        {
            "id": 545,
            "permission": "estimation:*:download:get",
            "description": "Download Estimation package"
        },
        {
            "id": 52,
            "permission": "cohortdefinition:*:copy:get",
            "description": "Copy the specified cohort definition"
        },
        {
            "id": 561,
            "permission": "notifications:get",
            "description": "Get notifications"
        },
        {
            "id": 1040,
            "permission": "cohortdefinition:check:post",
            "description": "Run diagnostics for cohort definition"
        },
        {
            "id": 1112,
            "permission": "reusable:post",
            "description": "Create reusable"
        },
        {
            "id": 1054,
            "permission": "tag:*:put",
            "description": "Update tag"
        },
        {
            "id": 1033,
            "permission": "cohort-characterization:generation:*:result:get",
            "description": "Get cohort characterization generation results - 2.7.x compatible"
        },
        {
            "id": 48,
            "permission": "cohortanalysis:get",
            "description": "Get Cohort analyses"
        },
        {
            "id": 525,
            "permission": "cohort-characterization:generation:*:result:post",
            "description": "Get cohort characterization generation results"
        },
        {
            "id": 587,
            "permission": "sqlrender:translate:post",
            "description": "Translate SQL"
        },
        {
            "id": 1010,
            "permission": "cohortdefinition:printfriendly:conceptsets:post",
            "description": "Get print-friendly HTML of conceptset list"
        },
        {
            "id": 1051,
            "permission": "tag:get",
            "description": "List tags"
        },
        {
            "id": 1078,
            "permission": "cohortdefinition:*:version:get",
            "description": "Get list of cohort versions"
        },
        {
            "id": 71,
            "permission": "plp:*:delete",
            "description": "Delete Patient Level Prediction"
        },
        {
            "id": 1082,
            "permission": "cohortdefinition:*:version:*:createAsset:put",
            "description": "Copy cohort version as new cohort"
        },
        {
            "id": 529,
            "permission": "feature-analysis:*:get",
            "description": "Get feature analysis"
        },
        {
            "id": 526,
            "permission": "cohort-characterization:generation:*:design:get",
            "description": "Get cohort characterization generation design"
        },
        {
            "id": 1089,
            "permission": "conceptset:*:version:*:expression:*:get",
            "description": "Get expression for concept set items for certain source"
        },
        {
            "id": 569,
            "permission": "estimation:*:generation:get",
            "description": "View Estimation Generations"
        },
        {
            "id": 547,
            "permission": "prediction:post",
            "description": "Create Prediction"
        },
        {
            "id": 1116,
            "permission": "reusable:*:get",
            "description": "Get reusable"
        },
        {
            "id": 584,
            "permission": "conceptset:*:expression:get",
            "description": "Resolve concept set expression"
        },
        {
            "id": 585,
            "permission": "conceptset:*:generationinfo:get",
            "description": "Get generation info for concept set"
        },
        {
            "id": 1084,
            "permission": "conceptset:*:version:*:get",
            "description": "Get concept set version"
        },
        {
            "id": 1075,
            "permission": "pathway-analysis:*:tag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 1042,
            "permission": "gis:cohort:*:clusters:*:get",
            "description": "Get gis clusters for source"
        },
        {
            "id": 61,
            "permission": "cohortdefinition:*:get",
            "description": "Get Cohort Definition by ID"
        },
        {
            "id": 544,
            "permission": "estimation:*:copy:get",
            "description": "Copy Estimation instance"
        },
        {
            "id": 1053,
            "permission": "tag:post",
            "description": "Create tag"
        },
        {
            "id": 1070,
            "permission": "ir:*:tag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 1115,
            "permission": "reusable:*:post",
            "description": "Copy reusable"
        },
        {
            "id": 1074,
            "permission": "pathway-analysis:*:tag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 1105,
            "permission": "cohortdefinition:byTags:post",
            "description": "Get cohort definitions with certain assigned tags"
        },
        {
            "id": 1088,
            "permission": "conceptset:*:version:*:expression:get",
            "description": "Get expression for concept set items for default source"
        },
        {
            "id": 521,
            "permission": "cohort-characterization:*:get",
            "description": "Get cohort characterization"
        },
        {
            "id": 1087,
            "permission": "conceptset:*:version:*:createAsset:put",
            "description": "Copy concept set version as new concept set"
        },
        {
            "id": 543,
            "permission": "estimation:*:get",
            "description": "Get Estimation instance"
        },
        {
            "id": 1022,
            "permission": "conceptset:*:copy-name:get",
            "description": "Get name for copying concept set"
        },
        {
            "id": 1048,
            "permission": "evidence:*:negativecontrols:*:get",
            "description": "Get evidence information"
        },
        {
            "id": 1125,
            "permission": "reusable:*:version:*:delete",
            "description": "Delete reusable version info"
        },
        {
            "id": 1118,
            "permission": "reusable:*:tag:post",
            "description": "Assign tag to reusable"
        },
        {
            "id": 38,
            "permission": "ir:post",
            "description": "Create new incidence rate"
        },
        {
            "id": 1009,
            "permission": "cohortdefinition:printfriendly:cohort:post",
            "description": "Get print-friendly HTML of cohort expression"
        },
        {
            "id": 1104,
            "permission": "pathway-analysis:*:version:*:createAsset:put",
            "description": "Copy pathway analysis version as new cohort"
        },
        {
            "id": 1032,
            "permission": "source:priorityVocabulary:get",
            "description": "Get source with highest priority vocabulary daimon"
        },
        {
            "id": 527,
            "permission": "cohort-characterization:*:export:get",
            "description": "Export cohort characterization"
        },
        {
            "id": 63,
            "permission": "*:vocabulary:lookup:identifiers:post",
            "description": "Perform a lookup of an array of concept identifiers returning the matching concepts with their detailed properties."
        },
        {
            "id": 570,
            "permission": "estimation:generation:*:result:get",
            "description": "View Estimation Generation Results"
        },
        {
            "id": 1021,
            "permission": "estimation:*:exists:get",
            "description": "Check name uniqueness of estimation"
        },
        {
            "id": 50,
            "permission": "cohortdefinition:post",
            "description": "Save new Cohort Definition"
        },
        {
            "id": 1019,
            "permission": "ir:*:exists:get",
            "description": "Check name uniqueness of incidence rate"
        },
        {
            "id": 1129,
            "permission": "tag:multiAssign:post",
            "description": "Tags multi-assign permission"
        },
        {
            "id": 568,
            "permission": "estimation:*:generation:*:post",
            "description": "Execute Estimation Generation Job"
        },
        {
            "id": 1029,
            "permission": "cohortsample:*:*:delete",
            "description": "Delete all cohort samples of a cohort."
        },
        {
            "id": 1039,
            "permission": "estimation:check:post",
            "description": "Run diagnostics for estimation"
        },
        {
            "id": 610,
            "permission": "estimation:import:post",
            "description": "Import PLE analyses"
        },
        {
            "id": 541,
            "permission": "estimation:post",
            "description": "Create Estimation"
        },
        {
            "id": 49,
            "permission": "cohortanalysis:*:get",
            "description": "Get Cohort analyses summary or preview"
        },
        {
            "id": 1134,
            "permission": "cohort-characterization:*:export:conceptset:get",
            "description": "Get archive with Cohort Characterization Concept Sets"
        },
        {
            "id": 519,
            "permission": "cohort-characterization:import:post",
            "description": "Import cohort characterization"
        },
        {
            "id": 1122,
            "permission": "reusable:*:version:get",
            "description": "Get list of reusables versions"
        },
        {
            "id": 532,
            "permission": "pathway-analysis:post",
            "description": "Create Pathways Analysis"
        },
        {
            "id": 60,
            "permission": "cohortdefinition:get",
            "description": "Get list of Cohort Definitions"
        },
        {
            "id": 1093,
            "permission": "cohort-characterization:*:version:*:delete",
            "description": "Delete characterization version info"
        },
        {
            "id": 1100,
            "permission": "pathway-analysis:*:version:get",
            "description": "Get list of pathway analysis versions"
        },
        {
            "id": 564,
            "permission": "pathway-analysis:*:post",
            "description": ""
        },
        {
            "id": 591,
            "permission": "cohort-characterization:design:get",
            "description": "Get cohort characterization design list"
        },
        {
            "id": 1041,
            "permission": "gis:cohort:*:bounds:*:get",
            "description": "Get gis bounds for source"
        },
        {
            "id": 1049,
            "permission": "evidence:*:druglabel:post",
            "description": "Get drug label information"
        },
        {
            "id": 1079,
            "permission": "cohortdefinition:*:version:*:get",
            "description": "Get cohort version"
        },
        {
            "id": 608,
            "permission": "cohort-characterization:generation:*:explore:prevalence:*:*:*:get",
            "description": "Explore covariate in Cohort Characterization"
        },
        {
            "id": 44,
            "permission": "plp:post",
            "description": "Create new plp"
        },
        {
            "id": 548,
            "permission": "prediction:get",
            "description": "Get Prediction list"
        },
        {
            "id": 1080,
            "permission": "cohortdefinition:*:version:*:put",
            "description": "Update cohort version info"
        },
        {
            "id": 1052,
            "permission": "tag:search:get",
            "description": "Search tags by name"
        },
        {
            "id": 609,
            "permission": "prediction:import:post",
            "description": "Import PLP analyses"
        },
        {
            "id": 1111,
            "permission": "reusable:get",
            "description": "List reusable"
        },
        {
            "id": 41,
            "permission": "comparativecohortanalysis:post",
            "description": "Create new estimation"
        },
        {
            "id": 518,
            "permission": "cohort-characterization:post",
            "description": "Create cohort characterization"
        },
        {
            "id": 1083,
            "permission": "conceptset:*:version:get",
            "description": "Get list of concept set versions"
        },
        {
            "id": 1102,
            "permission": "pathway-analysis:*:version:*:put",
            "description": "Update pathway analysis version info"
        },
        {
            "id": 1085,
            "permission": "conceptset:*:version:*:put",
            "description": "Update concept set version info"
        },
        {
            "id": 563,
            "permission": "cohort-characterization:*:post",
            "description": ""
        },
        {
            "id": 601,
            "permission": "cohortdefinition:*:check:post",
            "description": "Fix cohort definition"
        },
        {
            "id": 1113,
            "permission": "reusable:*:exists:get",
            "description": "Check name uniqueness of reusable"
        },
        {
            "id": 36,
            "permission": "ir:get",
            "description": "List of incidence rates"
        },
        {
            "id": 1061,
            "permission": "conceptset:*:tag:post",
            "description": "Assign tag to cohort definition"
        },
        {
            "id": 1055,
            "permission": "tag:*:get",
            "description": "Get tag"
        },
        {
            "id": 565,
            "permission": "prediction:*:generation:*:post",
            "description": "Execute Prediction Generation Job"
        },
        {
            "id": 550,
            "permission": "prediction:*:copy:get",
            "description": "Copy Prediction instance"
        },
        {
            "id": 1126,
            "permission": "reusable:*:version:*:createAsset:put",
            "description": "Copy reusable version as new reusable"
        },
        {
            "id": 1023,
            "permission": "ir:design:post",
            "description": "Import Incidence Rates design"
        },
        {
            "id": 1130,
            "permission": "tag:multiUnassign:post",
            "description": "Tags multi-unassign permission"
        },
        {
            "id": 1062,
            "permission": "conceptset:*:tag:*:delete",
            "description": "Unassign tag from cohort definition"
        },
        {
            "id": 1050,
            "permission": "evidence:*:drugconditionpairs:post",
            "description": "Get drug condition pairs information"
        },
        {
            "id": 1090,
            "permission": "cohort-characterization:*:version:get",
            "description": "Get list of characterization versions"
        },
        {
            "id": 62,
            "permission": "cohortdefinition:*:info:get",
            "description": ""
        },
        {
            "id": 104,
            "permission": "feasibility:get",
            "description": "List of Feasibilities"
        },
        {
            "id": 614,
            "permission": "pathway-analysis:*:generation:EUNOMIA:delete",
            "description": null
        },
        {
            "id": 627,
            "permission": "ir:*:info:EUNOMIA:get",
            "description": null
        },
        {
            "id": 575,
            "permission": "vocabulary:EUNOMIA:lookup:identifiers:ancestors:post",
            "description": null
        },
        {
            "id": 572,
            "permission": "vocabulary:EUNOMIA:included-concepts:count:post",
            "description": null
        },
        {
            "id": 1003,
            "permission": "cohortresults:EUNOMIA:*:healthcareutilization:*:*:get",
            "description": "Get cohort results baseline on period for Source with SourceKey = EUNOMIA"
        },
        {
            "id": 1046,
            "permission": "vocabulary:EUNOMIA:concept:*:ancestorAndDescendant:get",
            "description": null
        },
        {
            "id": 578,
            "permission": "vocabulary:EUNOMIA:optimize:post",
            "description": null
        },
        {
            "id": 611,
            "permission": "cohort-characterization:*:generation:EUNOMIA:post",
            "description": null
        },
        {
            "id": 571,
            "permission": "vocabulary:EUNOMIA:*:get",
            "description": null
        },
        {
            "id": 613,
            "permission": "pathway-analysis:*:generation:EUNOMIA:post",
            "description": null
        },
        {
            "id": 1004,
            "permission": "cohortresults:EUNOMIA:*:healthcareutilization:*:*:*:get",
            "description": "Get cohort results baseline on occurrence for Source with SourceKey = EUNOMIA"
        },
        {
            "id": 1000,
            "permission": "cohortdefinition:*:generate:EUNOMIA:get",
            "description": "Generate Cohort on Source with SourceKey = EUNOMIA"
        },
        {
            "id": 593,
            "permission": "vocabulary:EUNOMIA:concept:*:related:get",
            "description": null
        },
        {
            "id": 603,
            "permission": "ir:*:execute:EUNOMIA:delete",
            "description": null
        },
        {
            "id": 1001,
            "permission": "cohortdefinition:*:report:EUNOMIA:get",
            "description": "Get Inclusion Rule Report for Source with SourceKey = EUNOMIA"
        },
        {
            "id": 582,
            "permission": "cohortresults:EUNOMIA:*:*:get",
            "description": null
        },
        {
            "id": 600,
            "permission": "vocabulary:EUNOMIA:search:post",
            "description": null
        },
        {
            "id": 602,
            "permission": "ir:*:execute:EUNOMIA:get",
            "description": null
        },
        {
            "id": 583,
            "permission": "cohortresults:EUNOMIA:*:*:*:get",
            "description": null
        },
        {
            "id": 629,
            "permission": "vocabulary:EUNOMIA:search:*:get",
            "description": null
        },
        {
            "id": 574,
            "permission": "vocabulary:EUNOMIA:lookup:identifiers:post",
            "description": null
        },
        {
            "id": 605,
            "permission": "vocabulary:EUNOMIA:lookup:sourcecodes:post",
            "description": null
        },
        {
            "id": 580,
            "permission": "cdmresults:EUNOMIA:*:*:get",
            "description": null
        },
        {
            "id": 594,
            "permission": "cohortdefinition:*:cancel:EUNOMIA:get",
            "description": null
        },
        {
            "id": 616,
            "permission": "ir:*:report:EUNOMIA:get",
            "description": null
        },
        {
            "id": 576,
            "permission": "vocabulary:EUNOMIA:lookup:mapped:post",
            "description": null
        },
        {
            "id": 573,
            "permission": "vocabulary:EUNOMIA:resolveConceptSetExpression:post",
            "description": null
        },
        {
            "id": 531,
            "permission": "source:EUNOMIA:access",
            "description": "Access to Source with SourceKey = EUNOMIA"
        },
        {
            "id": 1128,
            "permission": "vocabulary:EUNOMIA:lookup:recommended:post",
            "description": null
        },
        {
            "id": 1006,
            "permission": "ir:EUNOMIA:info:*:delete",
            "description": null
        },
        {
            "id": 592,
            "permission": "vocabulary:EUNOMIA:concept:*:get",
            "description": null
        },
        {
            "id": 612,
            "permission": "cohort-characterization:*:generation:EUNOMIA:delete",
            "description": null
        },
        {
            "id": 577,
            "permission": "vocabulary:EUNOMIA:compare:post",
            "description": null
        },
        {
            "id": 579,
            "permission": "cdmresults:EUNOMIA:*:get",
            "description": null
        },
        {
            "id": 604,
            "permission": "EUNOMIA:person:*:get",
            "description": null
        },
        {
            "id": 581,
            "permission": "cdmresults:EUNOMIA:conceptRecordCount:post",
            "description": null
        },
        {
            "id": 507,
            "permission": "user:me:get",
            "description": "Get info about current user (myself)"
        }
    ]
}

Yet I get told that I do not have any access on every screen:

image

There is nothing in the web api logs that I can see which help and nothing in the console logs.

image

Any thoughts on what this issue might be would be appreciated

qcaas-nhs-sjt commented 7 months ago

Forgot to mention am using Entra ID via OpenID Connect

@chrisknoll don't suppose you're able to push me in the right direction for this?

qcaas-nhs-sjt commented 7 months ago

I've investigated this issue and it appears that it is looking for a property that is not present in the output from the WebAPI called permissionIdx

    const loadUserInfo = function() {
        return new Promise((resolve, reject) => $.ajax({
            url: config.api.url + 'user/me',
            method: 'GET',
            success: function (info, textStatus, jqXHR) {
                permissions(info.permissionIdx);  // read from permission index of User info
                subject(info.login);
                authProvider(jqXHR.getResponseHeader('x-auth-provider'));
                fullName(info.name ? info.name : info.login);
                resolve();
            },
            error: function (err) {
                if (err.status === 401) {
                    console.log('User is not authed');
                    subject(null);
                    if (config.enableSkipLogin) {
                        signInOpened(true);
                    }
                    resolve();
                } else {
                    reject('Cannot retrieve user info');
                }
            }
        }));
    };

I've therefore in our fork created a fix for this which takes the required data from the permissions field instead:


    const loadUserInfo = function() {
        return new Promise((resolve, reject) => $.ajax({
            url: config.api.url + 'user/me',
            method: 'GET',
            success: function (info, textStatus, jqXHR) {
                const permissionIdx = info.permissions.reduce(function(rv, x) {
                    key = x.permission.split(":")[0];
                  (rv[key] = rv[key] || []).push(x.permission);
                  return rv;
                }, {});

                permissions(permissionIdx);  // read from permission index of User info
                subject(info.login);
                authProvider(jqXHR.getResponseHeader('x-auth-provider'));
                fullName(info.name ? info.name : info.login);
                resolve();
            },
            error: function (err) {
                if (err.status === 401) {
                    console.log('User is not authed');
                    subject(null);
                    if (config.enableSkipLogin) {
                        signInOpened(true);
                    }
                    resolve();
                } else {
                    reject('Cannot retrieve user info');
                }
            }
        }));
    };

With this done I am able to access what I need:

image

I'm not sure whether I'm doing something wrong with our versioning or something, hence I've not raised a PR for this yet, I'd like someone more familiar with the codebase to look at this. Though you can see the change here:

https://github.com/lsc-sde/fork-ohdsi-atlas/commit/a10f9dad3ea2c8e91850e2b1292352b98d451ea5

We are using a docker image built from master branch of the Atlas repository, our webapi is currently using docker image:

ohdsi/webapi:2.14.0

chrisknoll commented 7 months ago

That's the problem, there's an update in Atlas Master that depends on master webAPI. So either grab the atlas UI tagged to v2.14.0 or rebuild your WebAPI with master branch.

qcaas-nhs-sjt commented 7 months ago

That's the problem, there's an update in Atlas Master that depends on master webAPI. So either grab the atlas UI tagged to v2.14.0 or rebuild your WebAPI with master branch.

Yeah thanks I literally just figured that out, had tried reverting back to 2.14.0 on both repositories previously but I guess the change didn't take for whatever reason which led me down the rabbit hole. I'll try reverting again and hopefully that will solve the problem. Thanks for your assistance, it is greatly appreciated