{"action":"created","comment":{"url":"https://api.github.com/repos/owncloud/user_ldap/pulls/comments/138193026","pull_request_review_id":61957501,"id":138193026,"diff_hunk":"@@ -748,12 +748,13 @@ private function _createAltInternalOwnCloudNameForGroups($name) {\n \t}\n \n \t/**\n+\t * FIXME was private\n \t * creates a unique name for internal ownCloud use.\n \t * @param string $name the display name of the object\n \t * @param boolean $isUser whether name should be created for a user (true) or a group (false)\n \t * @return string|false with with the name to use in ownCloud or false if unsuccessful\n \t */\n-\tprivate function createAltInternalOwnCloudName($name, $isUser) {\n+\tpublic function createAltInternalOwnCloudName($name, $isUser) {","path":"lib/Access.php","position":250,"original_position":250,"commit_id":"76dccbea2a1d0494cd7184505c57b78a58950890","original_commit_id":"76dccbea2a1d0494cd7184505c57b78a58950890","user":{"login":"mrow4a","id":13368647,"avatar_url":"https://avatars2.githubusercontent.com/u/13368647?v=4","gravatar_id":"","url":"https://api.github.com/users/mrow4a","html_url":"https://github.com/mrow4a","followers_url":"https://api.github.com/users/mrow4a/followers","following_url":"https://api.github.com/users/mrow4a/following{/other_user}","gists_url":"https://api.github.com/users/mrow4a/gists{/gist_id}","starred_url":"https://api.github.com/users/mrow4a/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrow4a/subscriptions","organizations_url":"https://api.github.com/users/mrow4a/orgs","repos_url":"https://api.github.com/users/mrow4a/repos","events_url":"https://api.github.com/users/mrow4a/events{/privacy}","received_events_url":"https://api.github.com/users/mrow4a/received_events","type":"User","site_admin":false},"body":"some more context here? ","created_at":"2017-09-11T21:11:11Z","updated_at":"2017-09-11T21:11:11Z","html_url":"https://github.com/owncloud/user_ldap/pull/125#discussion_r138193026","pull_request_url":"https://api.github.com/repos/owncloud/user_ldap/pulls/125","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/owncloud/user_ldap/pulls/comments/138193026"},"html":{"href":"https://github.com/owncloud/user_ldap/pull/125#discussion_r138193026"},"pull_request":{"href":"https://api.github.com/repos/owncloud/user_ldap/pulls/125"}}},"pull_request":{"url":"https://api.github.com/repos/owncloud/user_ldap/pulls/125","id":136355165,"html_url":"https://github.com/owncloud/user_ldap/pull/125","diff_url":"https://github.com/owncloud/user_ldap/pull/125.diff","patch_url":"https://github.com/owncloud/user_ldap/pull/125.patch","issue_url":"https://api.github.com/repos/owncloud/user_ldap/issues/125","number":125,"state":"open","locked":false,"title":" 🚧 rework the user ldap logic to match the account table","user":{"login":"butonic","id":956847,"avatar_url":"https://avatars0.githubusercontent.com/u/956847?v=4","gravatar_id":"","url":"https://api.github.com/users/butonic","html_url":"https://github.com/butonic","followers_url":"https://api.github.com/users/butonic/followers","following_url":"https://api.github.com/users/butonic/following{/other_user}","gists_url":"https://api.github.com/users/butonic/gists{/gist_id}","starred_url":"https://api.github.com/users/butonic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/butonic/subscriptions","organizations_url":"https://api.github.com/users/butonic/orgs","repos_url":"https://api.github.com/users/butonic/repos","events_url":"https://api.github.com/users/butonic/events{/privacy}","received_events_url":"https://api.github.com/users/butonic/received_events","type":"User","site_admin":false},"body":"I am sick of our ldap problems. The app is heavily used, yet undertested and quirky at best. It grew over time but its purpose changes with the introduction of the Account table in OC10.\r\n\r\n- getUsers() fetches and caches all necessary ldap attributes in a single paginated ldap search\r\n  - no subsequent readAttribute that aborts the running paged search ...\r\n  - most of the user backend interface calls only work correctly after a getUsers call. That is fine for now, because that is the way the sync works. checkPassword also correctly caches the attributes of the logged in user\r\n  - only caches the UserEntries (which wrap ldap results) in the current process. no longer uses the distributed cache for users ... wasted effort on sync and for user search the account table is used.\r\n- groups code is unchanged for now.\r\n  - could use some refactoring\r\n\r\nrequires  https://github.com/owncloud/core/pull/28729 to make the user sync correctly update quota and email\r\n\r\n- [ ] move some functions from Access to a helper class\r\n- [x] review commented tests, some are already covered by UserEntryTest, others are better located in the Manager\r\n- [ ] add more tests\r\n- [ ] add Class structure / chain to php doc\r\n- [x] test with user shibboleth\r\n- [ ] test users as group members if getUsers did not yet fetch the entry ... might there be a problem when groups have > 512 Users (the default size of the capped cache?)\r\n\r\nyes, I am ripping this apart and putting it together anew. I don't care about the ui. I need the underlying sync logic to work reliably AND the code to be readable. That means not trying to be smart and use less reflection ... ","created_at":"2017-08-17T21:14:59Z","updated_at":"2017-09-11T21:11:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bc31cd6c4ff5958348cd0a9ccda267dfa2bbba67","assignee":{"login":"butonic","id":956847,"avatar_url":"https://avatars0.githubusercontent.com/u/956847?v=4","gravatar_id":"","url":"https://api.github.com/users/butonic","html_url":"https://github.com/butonic","followers_url":"https://api.github.com/users/butonic/followers","following_url":"https://api.github.com/users/butonic/following{/other_user}","gists_url":"https://api.github.com/users/butonic/gists{/gist_id}","starred_url":"https://api.github.com/users/butonic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/butonic/subscriptions","organizations_url":"https://api.github.com/users/butonic/orgs","repos_url":"https://api.github.com/users/butonic/repos","events_url":"https://api.github.com/users/butonic/events{/privacy}","received_events_url":"https://api.github.com/users/butonic/received_events","type":"User","site_admin":false},"assignees":[{"login":"butonic","id":956847,"avatar_url":"https://avatars0.githubusercontent.com/u/956847?v=4","gravatar_id":"","url":"https://api.github.com/users/butonic","html_url":"https://github.com/butonic","followers_url":"https://api.github.com/users/butonic/followers","following_url":"https://api.github.com/users/butonic/following{/other_user}","gists_url":"https://api.github.com/users/butonic/gists{/gist_id}","starred_url":"https://api.github.com/users/butonic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/butonic/subscriptions","organizations_url":"https://api.github.com/users/butonic/orgs","repos_url":"https://api.github.com/users/butonic/repos","events_url":"https://api.github.com/users/butonic/events{/privacy}","received_events_url":"https://api.github.com/users/butonic/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/owncloud/user_ldap/milestones/10","html_url":"https://github.com/owncloud/user_ldap/milestone/10","labels_url":"https://api.github.com/repos/owncloud/user_ldap/milestones/10/labels","id":2612032,"number":10,"title":"development","description":null,"creator":{"login":"PVince81","id":277525,"avatar_url":"https://avatars2.githubusercontent.com/u/277525?v=4","gravatar_id":"","url":"https://api.github.com/users/PVince81","html_url":"https://github.com/PVince81","followers_url":"https://api.github.com/users/PVince81/followers","following_url":"https://api.github.com/users/PVince81/following{/other_user}","gists_url":"https://api.github.com/users/PVince81/gists{/gist_id}","starred_url":"https://api.github.com/users/PVince81/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PVince81/subscriptions","organizations_url":"https://api.github.com/users/PVince81/orgs","repos_url":"https://api.github.com/users/PVince81/repos","events_url":"https://api.github.com/users/PVince81/events{/privacy}","received_events_url":"https://api.github.com/users/PVince81/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":5,"state":"open","created_at":"2017-06-29T12:35:40Z","updated_at":"2017-08-17T21:16:41Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/owncloud/user_ldap/pulls/125/commits","review_comments_url":"https://api.github.com/repos/owncloud/user_ldap/pulls/125/comments","review_comment_url":"https://api.github.com/repos/owncloud/user_ldap/pulls/comments{/number}","comments_url":"https://api.github.com/repos/owncloud/user_ldap/issues/125/comments","statuses_url":"https://api.github.com/repos/owncloud/user_ldap/statuses/76dccbea2a1d0494cd7184505c57b78a58950890","head":{"label":"owncloud:fix_user_access","ref":"fix_user_access","sha":"76dccbea2a1d0494cd7184505c57b78a58950890","user":{"login":"owncloud","id":1645051,"avatar_url":"https://avatars3.githubusercontent.com/u/1645051?v=4","gravatar_id":"","url":"https://api.github.com/users/owncloud","html_url":"https://github.com/owncloud","followers_url":"https://api.github.com/users/owncloud/followers","following_url":"https://api.github.com/users/owncloud/following{/other_user}","gists_url":"https://api.github.com/users/owncloud/gists{/gist_id}","starred_url":"https://api.github.com/users/owncloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owncloud/subscriptions","organizations_url":"https://api.github.com/users/owncloud/orgs","repos_url":"https://api.github.com/users/owncloud/repos","events_url":"https://api.github.com/users/owncloud/events{/privacy}","received_events_url":"https://api.github.com/users/owncloud/received_events","type":"Organization","site_admin":false},"repo":{"id":67518380,"name":"user_ldap","full_name":"owncloud/user_ldap","owner":{"login":"owncloud","id":1645051,"avatar_url":"https://avatars3.githubusercontent.com/u/1645051?v=4","gravatar_id":"","url":"https://api.github.com/users/owncloud","html_url":"https://github.com/owncloud","followers_url":"https://api.github.com/users/owncloud/followers","following_url":"https://api.github.com/users/owncloud/following{/other_user}","gists_url":"https://api.github.com/users/owncloud/gists{/gist_id}","starred_url":"https://api.github.com/users/owncloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owncloud/subscriptions","organizations_url":"https://api.github.com/users/owncloud/orgs","repos_url":"https://api.github.com/users/owncloud/repos","events_url":"https://api.github.com/users/owncloud/events{/privacy}","received_events_url":"https://api.github.com/users/owncloud/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/owncloud/user_ldap","description":"📒","fork":false,"url":"https://api.github.com/repos/owncloud/user_ldap","forks_url":"https://api.github.com/repos/owncloud/user_ldap/forks","keys_url":"https://api.github.com/repos/owncloud/user_ldap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/owncloud/user_ldap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/owncloud/user_ldap/teams","hooks_url":"https://api.github.com/repos/owncloud/user_ldap/hooks","issue_events_url":"https://api.github.com/repos/owncloud/user_ldap/issues/events{/number}","events_url":"https://api.github.com/repos/owncloud/user_ldap/events","assignees_url":"https://api.github.com/repos/owncloud/user_ldap/assignees{/user}","branches_url":"https://api.github.com/repos/owncloud/user_ldap/branches{/branch}","tags_url":"https://api.github.com/repos/owncloud/user_ldap/tags","blobs_url":"https://api.github.com/repos/owncloud/user_ldap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/owncloud/user_ldap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/owncloud/user_ldap/git/refs{/sha}","trees_url":"https://api.github.com/repos/owncloud/user_ldap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/owncloud/user_ldap/statuses/{sha}","languages_url":"https://api.github.com/repos/owncloud/user_ldap/languages","stargazers_url":"https://api.github.com/repos/owncloud/user_ldap/stargazers","contributors_url":"https://api.github.com/repos/owncloud/user_ldap/contributors","subscribers_url":"https://api.github.com/repos/owncloud/user_ldap/subscribers","subscription_url":"https://api.github.com/repos/owncloud/user_ldap/subscription","commits_url":"https://api.github.com/repos/owncloud/user_ldap/commits{/sha}","git_commits_url":"https://api.github.com/repos/owncloud/user_ldap/git/commits{/sha}","comments_url":"https://api.github.com/repos/owncloud/user_ldap/comments{/number}","issue_comment_url":"https://api.github.com/repos/owncloud/user_ldap/issues/comments{/number}","contents_url":"https://api.github.com/repos/owncloud/user_ldap/contents/{+path}","compare_url":"https://api.github.com/repos/owncloud/user_ldap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/owncloud/user_ldap/merges","archive_url":"https://api.github.com/repos/owncloud/user_ldap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/owncloud/user_ldap/downloads","issues_url":"https://api.github.com/repos/owncloud/user_ldap/issues{/number}","pulls_url":"https://api.github.com/repos/owncloud/user_ldap/pulls{/number}","milestones_url":"https://api.github.com/repos/owncloud/user_ldap/milestones{/number}","notifications_url":"https://api.github.com/repos/owncloud/user_ldap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/owncloud/user_ldap/labels{/name}","releases_url":"https://api.github.com/repos/owncloud/user_ldap/releases{/id}","deployments_url":"https://api.github.com/repos/owncloud/user_ldap/deployments","created_at":"2016-09-06T14:59:09Z","updated_at":"2017-04-28T07:04:55Z","pushed_at":"2017-09-11T20:59:52Z","git_url":"git://github.com/owncloud/user_ldap.git","ssh_url":"git@github.com:owncloud/user_ldap.git","clone_url":"https://github.com/owncloud/user_ldap.git","svn_url":"https://github.com/owncloud/user_ldap","homepage":"","size":7104,"stargazers_count":7,"watchers_count":7,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"open_issues_count":50,"forks":11,"open_issues":50,"watchers":7,"default_branch":"master"}},"base":{"label":"owncloud:master","ref":"master","sha":"89ec7e7e661780d213de8432b4e442f49fdbf4c9","user":{"login":"owncloud","id":1645051,"avatar_url":"https://avatars3.githubusercontent.com/u/1645051?v=4","gravatar_id":"","url":"https://api.github.com/users/owncloud","html_url":"https://github.com/owncloud","followers_url":"https://api.github.com/users/owncloud/followers","following_url":"https://api.github.com/users/owncloud/following{/other_user}","gists_url":"https://api.github.com/users/owncloud/gists{/gist_id}","starred_url":"https://api.github.com/users/owncloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owncloud/subscriptions","organizations_url":"https://api.github.com/users/owncloud/orgs","repos_url":"https://api.github.com/users/owncloud/repos","events_url":"https://api.github.com/users/owncloud/events{/privacy}","received_events_url":"https://api.github.com/users/owncloud/received_events","type":"Organization","site_admin":false},"repo":{"id":67518380,"name":"user_ldap","full_name":"owncloud/user_ldap","owner":{"login":"owncloud","id":1645051,"avatar_url":"https://avatars3.githubusercontent.com/u/1645051?v=4","gravatar_id":"","url":"https://api.github.com/users/owncloud","html_url":"https://github.com/owncloud","followers_url":"https://api.github.com/users/owncloud/followers","following_url":"https://api.github.com/users/owncloud/following{/other_user}","gists_url":"https://api.github.com/users/owncloud/gists{/gist_id}","starred_url":"https://api.github.com/users/owncloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/owncloud/subscriptions","organizations_url":"https://api.github.com/users/owncloud/orgs","repos_url":"https://api.github.com/users/owncloud/repos","events_url":"https://api.github.com/users/owncloud/events{/privacy}","received_events_url":"https://api.github.com/users/owncloud/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/owncloud/user_ldap","description":"📒","fork":false,"url":"https://api.github.com/repos/owncloud/user_ldap","forks_url":"https://api.github.com/repos/owncloud/user_ldap/forks","keys_url":"https://api.github.com/repos/owncloud/user_ldap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/owncloud/user_ldap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/owncloud/user_ldap/teams","hooks_url":"https://api.github.com/repos/owncloud/user_ldap/hooks","issue_events_url":"https://api.github.com/repos/owncloud/user_ldap/issues/events{/number}","events_url":"https://api.github.com/repos/owncloud/user_ldap/events","assignees_url":"https://api.github.com/repos/owncloud/user_ldap/assignees{/user}","branches_url":"https://api.github.com/repos/owncloud/user_ldap/branches{/branch}","tags_url":"https://api.github.com/repos/owncloud/user_ldap/tags","blobs_url":"https://api.github.com/repos/owncloud/user_ldap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/owncloud/user_ldap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/owncloud/user_ldap/git/refs{/sha}","trees_url":"https://api.github.com/repos/owncloud/user_ldap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/owncloud/user_ldap/statuses/{sha}","languages_url":"https://api.github.com/repos/owncloud/user_ldap/languages","stargazers_url":"https://api.github.com/repos/owncloud/user_ldap/stargazers","contributors_url":"https://api.github.com/repos/owncloud/user_ldap/contributors","subscribers_url":"https://api.github.com/repos/owncloud/user_ldap/subscribers","subscription_url":"https://api.github.com/repos/owncloud/user_ldap/subscription","commits_url":"https://api.github.com/repos/owncloud/user_ldap/commits{/sha}","git_commits_url":"https://api.github.com/repos/owncloud/user_ldap/git/commits{/sha}","comments_url":"https://api.github.com/repos/owncloud/user_ldap/comments{/number}","issue_comment_url":"https://api.github.com/repos/owncloud/user_ldap/issues/comments{/number}","contents_url":"https://api.github.com/repos/owncloud/user_ldap/contents/{+path}","compare_url":"https://api.github.com/repos/owncloud/user_ldap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/owncloud/user_ldap/merges","archive_url":"https://api.github.com/repos/owncloud/user_ldap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/owncloud/user_ldap/downloads","issues_url":"https://api.github.com/repos/owncloud/user_ldap/issues{/number}","pulls_url":"https://api.github.com/repos/owncloud/user_ldap/pulls{/number}","milestones_url":"https://api.github.com/repos/owncloud/user_ldap/milestones{/number}","notifications_url":"https://api.github.com/repos/owncloud/user_ldap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/owncloud/user_ldap/labels{/name}","releases_url":"https://api.github.com/repos/owncloud/user_ldap/releases{/id}","deployments_url":"https://api.github.com/repos/owncloud/user_ldap/deployments","created_at":"2016-09-06T14:59:09Z","updated_at":"2017-04-28T07:04:55Z","pushed_at":"2017-09-11T20:59:52Z","git_url":"git://github.com/owncloud/user_ldap.git","ssh_url":"git@github.com:owncloud/user_ldap.git","clone_url":"https://github.com/owncloud/user_ldap.git","svn_url":"https://github.com/owncloud/user_ldap","homepage":"","size":7104,"stargazers_count":7,"watchers_count":7,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"open_issues_count":50,"forks":11,"open_issues":50,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/owncloud/user_ldap/pulls/125"},"html":{"href":"https://github.com/owncloud/user_ldap/pull/125"},"issue":{"href":"https://api.github.com/repos/owncloud/user_ldap/issues/125"},"comments":{"href":"https://api.github.com/repos/owncloud/user_ldap/issues/125/comments"},"review_comments":{"href":"https://api.github.com/repos/owncloud/user_ldap/pulls/125/comments"},"review_comment":{"href":"https://api.github.com/repos/owncloud/user_ldap/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/owncloud/user_ldap/pulls/125/commits"},"statuses":{"href":"https://api.github.com/repos/owncloud/user_ldap/statuses/76dccbea2a1d0494cd7184505c57b78a58950890"}},"author_association":"OWNER"}}
{"actor":{"display_login":"mrow4a"}}