[AltStoreCore] Fixes incorrectly merging permissions for same app from different sources

This commit is contained in:
Riley Testut
2023-05-30 15:28:26 -05:00
committed by Magesh K
parent f926f596aa
commit 15b3cd5f2d
3 changed files with 10 additions and 2 deletions

View File

@@ -27,8 +27,9 @@
</uniquenessConstraints>
</entity>
<entity name="AppPermission" representedClassName="AppPermission" syncable="YES">
<attribute name="appBundleID" optional="YES" attributeType="String"/>
<attribute name="appBundleID" attributeType="String"/>
<attribute name="permission" attributeType="String"/>
<attribute name="sourceID" attributeType="String"/>
<attribute name="type" attributeType="String"/>
<attribute name="usageDescription" attributeType="String"/>
<relationship name="app" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="StoreApp" inverseName="permissions" inverseEntity="StoreApp"/>
@@ -37,6 +38,7 @@
<constraint value="appBundleID"/>
<constraint value="permission"/>
<constraint value="type"/>
<constraint value="sourceID"/>
</uniquenessConstraint>
</uniquenessConstraints>
</entity>

View File

@@ -97,7 +97,8 @@ public class AppPermission: NSManagedObject, Decodable, Fetchable
@NSManaged @objc(permission) private var _permission: String
// Set by StoreApp.
@NSManaged public var appBundleID: String?
@NSManaged public var appBundleID: String
@NSManaged public var sourceID: String
/* Relationships */
@NSManaged public internal(set) var app: StoreApp?

View File

@@ -137,6 +137,11 @@ public class StoreApp: NSManagedObject, Decodable, Fetchable
{
version.sourceID = newValue
}
for permission in self.permissions
{
permission.sourceID = self.sourceIdentifier ?? ""
}
}
}
@NSManaged private var primitiveSourceIdentifier: String?