{"action":"closed","issue":{"url":"https://api.github.com/repos/FactoryCampus/radau/issues/1","repository_url":"https://api.github.com/repos/FactoryCampus/radau","labels_url":"https://api.github.com/repos/FactoryCampus/radau/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/FactoryCampus/radau/issues/1/comments","events_url":"https://api.github.com/repos/FactoryCampus/radau/issues/1/events","html_url":"https://github.com/FactoryCampus/radau/issues/1","id":333343298,"node_id":"MDU6SXNzdWUzMzMzNDMyOTg=","number":1,"title":"Wrong extraProperties returned when calling /users route","user":{"login":"rbott","id":13122740,"node_id":"MDQ6VXNlcjEzMTIyNzQw","avatar_url":"https://avatars3.githubusercontent.com/u/13122740?v=4","gravatar_id":"","url":"https://api.github.com/users/rbott","html_url":"https://github.com/rbott","followers_url":"https://api.github.com/users/rbott/followers","following_url":"https://api.github.com/users/rbott/following{/other_user}","gists_url":"https://api.github.com/users/rbott/gists{/gist_id}","starred_url":"https://api.github.com/users/rbott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbott/subscriptions","organizations_url":"https://api.github.com/users/rbott/orgs","repos_url":"https://api.github.com/users/rbott/repos","events_url":"https://api.github.com/users/rbott/events{/privacy}","received_events_url":"https://api.github.com/users/rbott/received_events","type":"User","site_admin":false},"labels":[{"id":947172770,"node_id":"MDU6TGFiZWw5NDcxNzI3NzA=","url":"https://api.github.com/repos/FactoryCampus/radau/labels/bug","name":"bug","color":"d73a4a","default":true}],"state":"closed","locked":false,"assignee":{"login":"mraerino","id":4941459,"node_id":"MDQ6VXNlcjQ5NDE0NTk=","avatar_url":"https://avatars0.githubusercontent.com/u/4941459?v=4","gravatar_id":"","url":"https://api.github.com/users/mraerino","html_url":"https://github.com/mraerino","followers_url":"https://api.github.com/users/mraerino/followers","following_url":"https://api.github.com/users/mraerino/following{/other_user}","gists_url":"https://api.github.com/users/mraerino/gists{/gist_id}","starred_url":"https://api.github.com/users/mraerino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mraerino/subscriptions","organizations_url":"https://api.github.com/users/mraerino/orgs","repos_url":"https://api.github.com/users/mraerino/repos","events_url":"https://api.github.com/users/mraerino/events{/privacy}","received_events_url":"https://api.github.com/users/mraerino/received_events","type":"User","site_admin":false},"assignees":[{"login":"mraerino","id":4941459,"node_id":"MDQ6VXNlcjQ5NDE0NTk=","avatar_url":"https://avatars0.githubusercontent.com/u/4941459?v=4","gravatar_id":"","url":"https://api.github.com/users/mraerino","html_url":"https://github.com/mraerino","followers_url":"https://api.github.com/users/mraerino/followers","following_url":"https://api.github.com/users/mraerino/following{/other_user}","gists_url":"https://api.github.com/users/mraerino/gists{/gist_id}","starred_url":"https://api.github.com/users/mraerino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mraerino/subscriptions","organizations_url":"https://api.github.com/users/mraerino/orgs","repos_url":"https://api.github.com/users/mraerino/repos","events_url":"https://api.github.com/users/mraerino/events{/privacy}","received_events_url":"https://api.github.com/users/mraerino/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-06-18T16:24:42Z","updated_at":"2018-06-26T20:35:47Z","closed_at":"2018-06-26T20:35:47Z","author_association":"NONE","body":"When I directly query users I receive their correct `extraProperties` (e.g. via /radius/someUser).\r\n\r\nWhen I call the `/users` route (which should dump all users and their extra-properties) I receive the same set of `extraProperties` for each user.\r\n\r\nThis is the (shortened) reply from the server.\r\n```\r\n{\r\n   \"users\" : [\r\n      {\r\n         \"lastQuery\" : \"2018-06-18T16:12:48.128917Z\",\r\n         \"extraProperties\" : {\r\n            \"Tunnel-Private-Group-Id\" : \"100\"\r\n         },\r\n         \"token\" : \"1234567\",\r\n         \"username\" : \"user1@domain.de\"\r\n      },\r\n      {\r\n         \"token\" : \"1234567\",\r\n         \"username\" : \"user2@domain.de\",\r\n         \"lastQuery\" : \"2018-06-18T16:12:30.128917Z\",\r\n         \"extraProperties\" : {\r\n            \"Tunnel-Private-Group-Id\" : \"100\"\r\n         }\r\n      },\r\n      {\r\n         \"extraProperties\" : {\r\n            \"Tunnel-Private-Group-Id\" : \"100\"\r\n         },\r\n         \"lastQuery\" : \"2018-06-18T16:10:00.128917Z\",\r\n         \"username\" : \"user3@domain.de\",\r\n         \"token\" : \"1234567\"\r\n      }\r\n\r\n      [...]\r\n      \r\n   ],\r\n   \"userCount\" : 40\r\n}\r\n```\r\n\r\nThis is the example Script used to generate the above output:\r\n```\r\n#!/usr/bin/python\r\n\r\nimport requests\r\n\r\nhost = \"http://radau.domain:8080\"\r\nurl = \"/users\"\r\nheaders = { \"Authorization\": \"aAbBcCdDeEfFgGhH\"}\r\n\r\ntry:\r\n    r = requests.get(host + url, headers=headers)\r\n    if r.status_code == 200:\r\n        print(r.text)\r\n    else:\r\n        print(\"Unexpected Return Code: {0}\".format(r.status_code))\r\nexcept Exception as err:\r\n    print(\"Connection error: {0}\".format(err))\r\n```\r\n\r\nDirectly retrieving user1, user2, user3 whould show that they actually have different extraProperties configured. In this case all of them have only configured `Tunnel-Private-Group-Id` with different values.\r\n\r\nIf I update the `extraProperties` of any given user, the next call to `/users` will contain exactly this set of `extraProperties` set for _all_ users."}}
{"actor":{"display_login":"mraerino"}}