mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	fix: #11906, remove retrieval of SSO data in getAllData internal method, only retrieve for calling user or admins, and only on edit page
This commit is contained in:
		| @@ -5,6 +5,7 @@ const meta = require('../../meta'); | |||||||
| const helpers = require('../helpers'); | const helpers = require('../helpers'); | ||||||
| const groups = require('../../groups'); | const groups = require('../../groups'); | ||||||
| const privileges = require('../../privileges'); | const privileges = require('../../privileges'); | ||||||
|  | const plugins = require('../../plugins'); | ||||||
| const accountHelpers = require('./helpers'); | const accountHelpers = require('./helpers'); | ||||||
| const file = require('../../file'); | const file = require('../../file'); | ||||||
|  |  | ||||||
| @@ -19,9 +20,10 @@ editController.get = async function (req, res) { | |||||||
| 		groups: _groups, | 		groups: _groups, | ||||||
| 		groupTitleArray, | 		groupTitleArray, | ||||||
| 		allowMultipleBadges, | 		allowMultipleBadges, | ||||||
| 	}, canUseSignature] = await Promise.all([ | 	}, canUseSignature, canManageUsers] = await Promise.all([ | ||||||
| 		accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query), | 		accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query), | ||||||
| 		privileges.global.can('signature', req.uid), | 		privileges.global.can('signature', req.uid), | ||||||
|  | 		privileges.admin.can('admin:users', req.uid), | ||||||
| 	]); | 	]); | ||||||
|  |  | ||||||
| 	const payload = {}; | 	const payload = {}; | ||||||
| @@ -38,6 +40,10 @@ editController.get = async function (req, res) { | |||||||
|  |  | ||||||
| 	payload.groups = _groups.filter(g => g && g.userTitleEnabled && !groups.isPrivilegeGroup(g.name) && g.name !== 'registered-users'); | 	payload.groups = _groups.filter(g => g && g.userTitleEnabled && !groups.isPrivilegeGroup(g.name) && g.name !== 'registered-users'); | ||||||
|  |  | ||||||
|  | 	if (req.uid === res.locals.uid || canManageUsers) { | ||||||
|  | 		payload.sso = await plugins.hooks.fire('filter:auth.list', { uid: res.locals.uid, associations: [] }); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	if (!allowMultipleBadges) { | 	if (!allowMultipleBadges) { | ||||||
| 		payload.groupTitle = groupTitleArray[0]; | 		payload.groupTitle = groupTitleArray[0]; | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -104,16 +104,6 @@ helpers.getUserDataByUserSlug = async function (userslug, callerUID, query = {}) | |||||||
| 		canViewInfo: canViewInfo, | 		canViewInfo: canViewInfo, | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| 	userData.sso = results.sso.associations.map((association) => { |  | ||||||
| 		if (!isSelf) { |  | ||||||
| 			delete association.deauthUrl; |  | ||||||
| 			if (!association.associated) { |  | ||||||
| 				delete association.url; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		return association; |  | ||||||
| 	}); |  | ||||||
| 	userData.banned = Boolean(userData.banned); | 	userData.banned = Boolean(userData.banned); | ||||||
| 	userData.muted = parseInt(userData.mutedUntil, 10) > Date.now(); | 	userData.muted = parseInt(userData.mutedUntil, 10) > Date.now(); | ||||||
| 	userData.website = escape(userData.website); | 	userData.website = escape(userData.website); | ||||||
| @@ -162,7 +152,6 @@ async function getAllData(uid, callerUID) { | |||||||
| 		ips: user.getIPs(uid, 4), | 		ips: user.getIPs(uid, 4), | ||||||
| 		profile_menu: getProfileMenu(uid, callerUID), | 		profile_menu: getProfileMenu(uid, callerUID), | ||||||
| 		groups: groups.getUserGroups([uid]), | 		groups: groups.getUserGroups([uid]), | ||||||
| 		sso: plugins.hooks.fire('filter:auth.list', { uid: uid, associations: [] }), |  | ||||||
| 		canEdit: privileges.users.canEdit(callerUID, uid), | 		canEdit: privileges.users.canEdit(callerUID, uid), | ||||||
| 		canBanUser: privileges.users.canBanUser(callerUID, uid), | 		canBanUser: privileges.users.canBanUser(callerUID, uid), | ||||||
| 		canMuteUser: privileges.users.canMuteUser(callerUID, uid), | 		canMuteUser: privileges.users.canMuteUser(callerUID, uid), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user