Set unmessagable more places

This commit is contained in:
Garth Vander Houwen 2025-05-15 18:59:38 -07:00
parent faa6886ec2
commit f59a945a8d
2 changed files with 16 additions and 4 deletions

View file

@ -317,6 +317,12 @@ func nodeInfoPacket (nodeInfo: NodeInfo, channel: UInt32, context: NSManagedObje
newUser.pkiEncrypted = true
newUser.publicKey = nodeInfo.user.publicKey
}
let roles: [Int32] = [2, 4, 5, 6, 7, 10, 11]
if roles.contains(Int32(newUser.role)) {
newUser.unmessagable = true
} else {
newUser.unmessagable = false
}
newNode.user = newUser
} else if nodeInfo.num > Constants.minimumNodeNum {
let newUser = createUser(num: Int64(nodeInfo.num), context: context)
@ -389,6 +395,12 @@ func nodeInfoPacket (nodeInfo: NodeInfo, channel: UInt32, context: NSManagedObje
fetchedNode[0].user!.role = Int32(nodeInfo.user.role.rawValue)
fetchedNode[0].user!.hwModel = String(describing: nodeInfo.user.hwModel).uppercased()
fetchedNode[0].user!.hwModelId = Int32(nodeInfo.user.hwModel.rawValue)
let roles: [Int32] = [-1, 2, 4, 5, 6, 7, 10, 11]
if roles.contains(Int32(fetchedNode[0].user?.role ?? -1)) {
fetchedNode[0].user!.unmessagable = true
} else {
fetchedNode[0].user!.unmessagable = false
}
Task {
Api().loadDeviceHardwareData { (hw) in
let dh = hw.first(where: { $0.hwModel == fetchedNode[0].user!.hwModelId })

View file

@ -187,8 +187,8 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext)
newUser.unmessagable = newUserMessage.isUnmessagable
} else {
// For older firmare make Repeater, Router, Router Late, Sensor, Tracker, TAK, and TAK Tracker unmessagable
let roles: [Int32] = [4, 2, 11, 6, 7, 10]
if roles.contains(newUser.role) {
let roles: [Int32] = [2, 4, 5, 6, 7, 10, 11]
if roles.contains(Int32(newUser.role)) {
newUser.unmessagable = true
} else {
newUser.unmessagable = false
@ -294,8 +294,8 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext)
fetchedNode[0].user!.unmessagable = nodeInfoMessage.user.isUnmessagable
} else {
// For older firmare make Repeater, Router, Router Late, Sensor, Tracker, TAK, and TAK Tracker unmessagable
let roles: [Int32] = [-1, 4, 2, 11, 6, 7, 10]
if roles.contains(fetchedNode[0].user?.role ?? -1) {
let roles: [Int32] = [-1, 2, 4, 5, 6, 7, 10, 11]
if roles.contains(Int32(fetchedNode[0].user?.role ?? -1)) {
fetchedNode[0].user!.unmessagable = true
} else {
fetchedNode[0].user!.unmessagable = false