 1751d5fcf2
			
		
	
	
		1751d5fcf2
		
	
	
	
	
		
			
			* Restricted users (#4334): initial implementation
* Add User.IsRestricted & UI to edit it
* Pass user object instead of user id to places where IsRestricted flag matters
* Restricted users: maintain access rows for all referenced repos (incl public)
* Take logged in user & IsRestricted flag into account in org/repo listings, searches and accesses
* Add basic repo access tests for restricted users
Signed-off-by: Manush Dodunekov <manush@stendahls.se>
* Mention restricted users in the faq
Signed-off-by: Manush Dodunekov <manush@stendahls.se>
* Revert unnecessary change `.isUserPartOfOrg` -> `.IsUserPartOfOrg`
Signed-off-by: Manush Dodunekov <manush@stendahls.se>
* Remove unnecessary `org.IsOrganization()` call
Signed-off-by: Manush Dodunekov <manush@stendahls.se>
* Revert to an `int64` keyed `accessMap`
* Add type `userAccess`
* Add convenience func updateUserAccess()
* Turn accessMap into a `map[int64]userAccess`
Signed-off-by: Manush Dodunekov <manush@stendahls.se>
* or even better: `map[int64]*userAccess`
* updateUserAccess(): use tighter syntax as suggested by lafriks
* even tighter
* Avoid extra loop
* Don't disclose limited orgs to unauthenticated users
* Don't assume block only applies to orgs
* Use an array of `VisibleType` for filtering
* fix yet another thinko
* Ok - no need for u
* Revert "Ok - no need for u"
This reverts commit 5c3e886aab.
Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
		
	
			
		
			
				
	
	
		
			480 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			480 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # NOTE: all users should have a password of "password"
 | |
| 
 | |
| - # NOTE: this user (id=1) is the admin
 | |
|   id: 1
 | |
|   lower_name: user1
 | |
|   name: user1
 | |
|   full_name: User One
 | |
|   email: user1@example.com
 | |
|   email_notifications_preference: enabled
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: true
 | |
|   avatar: avatar1
 | |
|   avatar_email: user1@example.com
 | |
|   num_repos: 0
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 2
 | |
|   lower_name: user2
 | |
|   name: user2
 | |
|   full_name: "   < U<se>r Tw<o > ><  "
 | |
|   email: user2@example.com
 | |
|   keep_email_private: true
 | |
|   email_notifications_preference: enabled
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar2
 | |
|   avatar_email: user2@example.com
 | |
|   num_repos: 9
 | |
|   num_stars: 2
 | |
|   num_followers: 2
 | |
|   num_following: 1
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 3
 | |
|   lower_name: user3
 | |
|   name: user3
 | |
|   full_name: " <<<< >> >> > >> > >>> >> "
 | |
|   email: user3@example.com
 | |
|   email_notifications_preference: onmention
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar3
 | |
|   avatar_email: user3@example.com
 | |
|   num_repos: 3
 | |
|   num_members: 3
 | |
|   num_teams: 4
 | |
| 
 | |
| -
 | |
|   id: 4
 | |
|   lower_name: user4
 | |
|   name: user4
 | |
|   full_name: "          "
 | |
|   email: user4@example.com
 | |
|   email_notifications_preference: onmention
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar4
 | |
|   avatar_email: user4@example.com
 | |
|   num_repos: 0
 | |
|   num_following: 1
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 5
 | |
|   lower_name: user5
 | |
|   name: user5
 | |
|   full_name: User Five
 | |
|   email: user5@example.com
 | |
|   email_notifications_preference: enabled
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar5
 | |
|   avatar_email: user5@example.com
 | |
|   num_repos: 1
 | |
|   allow_create_organization: false
 | |
|   is_active: true
 | |
|   num_following: 0
 | |
| 
 | |
| -
 | |
|   id: 6
 | |
|   lower_name: user6
 | |
|   name: user6
 | |
|   full_name: User Six
 | |
|   email: user6@example.com
 | |
|   email_notifications_preference: enabled
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar6
 | |
|   avatar_email: user6@example.com
 | |
|   num_repos: 0
 | |
|   num_members: 2
 | |
|   num_teams: 2
 | |
| 
 | |
| -
 | |
|   id: 7
 | |
|   lower_name: user7
 | |
|   name: user7
 | |
|   full_name: User Seven
 | |
|   email: user7@example.com
 | |
|   email_notifications_preference: disabled
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar7
 | |
|   avatar_email: user7@example.com
 | |
|   num_repos: 0
 | |
|   num_members: 1
 | |
|   num_teams: 1
 | |
| 
 | |
| -
 | |
|   id: 8
 | |
|   lower_name: user8
 | |
|   name: user8
 | |
|   full_name: User Eight
 | |
|   email: user8@example.com
 | |
|   email_notifications_preference: enabled
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar8
 | |
|   avatar_email: user8@example.com
 | |
|   num_repos: 0
 | |
|   is_active: true
 | |
|   num_followers: 1
 | |
|   num_following: 1
 | |
| 
 | |
| -
 | |
|   id: 9
 | |
|   lower_name: user9
 | |
|   name: user9
 | |
|   full_name: User Nine
 | |
|   email: user9@example.com
 | |
|   email_notifications_preference: onmention
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar9
 | |
|   avatar_email: user9@example.com
 | |
|   num_repos: 0
 | |
|   is_active: false
 | |
| 
 | |
| -
 | |
|   id: 10
 | |
|   lower_name: user10
 | |
|   name: user10
 | |
|   full_name: User Ten
 | |
|   email: user10@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar10
 | |
|   avatar_email: user10@example.com
 | |
|   num_repos: 3
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 11
 | |
|   lower_name: user11
 | |
|   name: user11
 | |
|   full_name: User Eleven
 | |
|   email: user11@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar11
 | |
|   avatar_email: user11@example.com
 | |
|   num_repos: 1
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 12
 | |
|   lower_name: user12
 | |
|   name: user12
 | |
|   full_name: User 12
 | |
|   email: user12@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar12
 | |
|   avatar_email: user12@example.com
 | |
|   num_repos: 1
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 13
 | |
|   lower_name: user13
 | |
|   name: user13
 | |
|   full_name: User 13
 | |
|   email: user13@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar13
 | |
|   avatar_email: user13@example.com
 | |
|   num_repos: 1
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 14
 | |
|   lower_name: user14
 | |
|   name: user14
 | |
|   full_name: User 14
 | |
|   email: user14@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar14
 | |
|   avatar_email: user13@example.com
 | |
|   num_repos: 3
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 15
 | |
|   lower_name: user15
 | |
|   name: user15
 | |
|   full_name: User 15
 | |
|   email: user15@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar15
 | |
|   avatar_email: user15@example.com
 | |
|   num_repos: 4
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 16
 | |
|   lower_name: user16
 | |
|   name: user16
 | |
|   full_name: User 16
 | |
|   email: user16@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar16
 | |
|   avatar_email: user16@example.com
 | |
|   num_repos: 2
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 17
 | |
|   lower_name: user17
 | |
|   name: user17
 | |
|   full_name: User 17
 | |
|   email: user17@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar17
 | |
|   avatar_email: user17@example.com
 | |
|   num_repos: 2
 | |
|   is_active: true
 | |
|   num_members: 3
 | |
|   num_teams: 3
 | |
| 
 | |
| -
 | |
|   id: 18
 | |
|   lower_name: user18
 | |
|   name: user18
 | |
|   full_name: User 18
 | |
|   email: user18@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar18
 | |
|   avatar_email: user18@example.com
 | |
|   num_repos: 0
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 19
 | |
|   lower_name: user19
 | |
|   name: user19
 | |
|   full_name: User 19
 | |
|   email: user19@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar19
 | |
|   avatar_email: user19@example.com
 | |
|   num_repos: 2
 | |
|   is_active: true
 | |
|   num_members: 1
 | |
|   num_teams: 1
 | |
| 
 | |
| -
 | |
|   id: 20
 | |
|   lower_name: user20
 | |
|   name: user20
 | |
|   full_name: User 20
 | |
|   email: user20@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar20
 | |
|   avatar_email: user20@example.com
 | |
|   num_repos: 4
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 21
 | |
|   lower_name: user21
 | |
|   name: user21
 | |
|   full_name: User 21
 | |
|   email: user21@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar21
 | |
|   avatar_email: user21@example.com
 | |
|   num_repos: 2
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 22
 | |
|   lower_name: limited_org
 | |
|   name: limited_org
 | |
|   full_name: Limited Org
 | |
|   email: limited_org@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar22
 | |
|   avatar_email: limited_org@example.com
 | |
|   num_repos: 2
 | |
|   is_active: true
 | |
|   num_members: 0
 | |
|   num_teams: 0
 | |
|   visibility: 1
 | |
| 
 | |
| -
 | |
|   id: 23
 | |
|   lower_name: privated_org
 | |
|   name: privated_org
 | |
|   full_name: Privated Org
 | |
|   email: privated_org@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar23
 | |
|   avatar_email: privated_org@example.com
 | |
|   num_repos: 2
 | |
|   is_active: true
 | |
|   num_members: 0
 | |
|   num_teams: 0
 | |
|   visibility: 2
 | |
| 
 | |
| -
 | |
|   id: 24
 | |
|   lower_name: user24
 | |
|   name: user24
 | |
|   full_name: "user24"
 | |
|   email: user24@example.com
 | |
|   keep_email_private: true
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar24
 | |
|   avatar_email: user24@example.com
 | |
|   num_repos: 0
 | |
|   num_stars: 0
 | |
|   num_followers: 0
 | |
|   num_following: 0
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 25
 | |
|   lower_name: org25
 | |
|   name: org25
 | |
|   full_name: "org25"
 | |
|   email: org25@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar25
 | |
|   avatar_email: org25@example.com
 | |
|   num_repos: 0
 | |
|   num_members: 1
 | |
|   num_teams: 1
 | |
| 
 | |
| -
 | |
|   id: 26
 | |
|   lower_name: org26
 | |
|   name: org26
 | |
|   full_name: "Org26"
 | |
|   email: org26@example.com
 | |
|   email_notifications_preference: onmention
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 1 # organization
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar26
 | |
|   avatar_email: org26@example.com
 | |
|   num_repos: 4
 | |
|   num_members: 0
 | |
|   num_teams: 1
 | |
|   repo_admin_change_team_access: true
 | |
| 
 | |
| -
 | |
|   id: 27
 | |
|   lower_name: user27
 | |
|   name: user27
 | |
|   full_name: User Twenty-Seven
 | |
|   email: user27@example.com
 | |
|   email_notifications_preference: enabled
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar27
 | |
|   avatar_email: user27@example.com
 | |
|   num_repos: 2
 | |
| 
 | |
| -
 | |
|   id: 28
 | |
|   lower_name: user28
 | |
|   name: user28
 | |
|   full_name: "user27"
 | |
|   email: user28@example.com
 | |
|   keep_email_private: true
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   avatar: avatar28
 | |
|   avatar_email: user28@example.com
 | |
|   num_repos: 0
 | |
|   num_stars: 0
 | |
|   num_followers: 0
 | |
|   num_following: 0
 | |
|   is_active: true
 | |
| 
 | |
| -
 | |
|   id: 29
 | |
|   lower_name: user29
 | |
|   name: user29
 | |
|   full_name: User 29
 | |
|   email: user29@example.com
 | |
|   passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f4701772a025a # password
 | |
|   type: 0 # individual
 | |
|   salt: ZogKvWdyEx
 | |
|   is_admin: false
 | |
|   is_restricted: true
 | |
|   avatar: avatar29
 | |
|   avatar_email: user29@example.com
 | |
|   num_repos: 0
 | |
|   is_active: true
 |