(
threadInfo: ?(
| LegacyRawThreadInfo
| RawThreadInfo
| ThreadInfo
| ServerThreadInfo
),
)
| 1084 | } |
| 1085 | |
| 1086 | function threadHasAdminRole( |
| 1087 | threadInfo: ?( |
| 1088 | | LegacyRawThreadInfo |
| 1089 | | RawThreadInfo |
| 1090 | | ThreadInfo |
| 1091 | | ServerThreadInfo |
| 1092 | ), |
| 1093 | ): boolean { |
| 1094 | if (!threadInfo) { |
| 1095 | return false; |
| 1096 | } |
| 1097 | let hasSpecialRoleFieldBeenEncountered = false; |
| 1098 | for (const role of Object.values(threadInfo.roles)) { |
| 1099 | if (role.specialRole === specialRoles.ADMIN_ROLE) { |
| 1100 | return true; |
| 1101 | } |
| 1102 | if (role.specialRole !== undefined) { |
| 1103 | hasSpecialRoleFieldBeenEncountered = true; |
| 1104 | } |
| 1105 | } |
| 1106 | if (hasSpecialRoleFieldBeenEncountered) { |
| 1107 | return false; |
| 1108 | } |
| 1109 | return !!_find({ name: 'Admins' })(threadInfo.roles); |
| 1110 | } |
| 1111 | |
| 1112 | const permissionsDisabledByBlockArray = values( |
| 1113 | threadPermissionsDisabledByBlock, |
no test coverage detected