mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-08 22:33:26 +01:00
[AltStoreCore] Fixes incorrectly merging permissions for same app from different sources
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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?
|
||||
|
||||
Reference in New Issue
Block a user