|
@@ -85,6 +85,81 @@ import Cocoa
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public class func refreshRights(isActivaDevice: Bool, isDealCode: Bool, callback: ((_ model: KMRequestResultModel?)->Void)?) {
|
|
|
+ guard let token = KMDataManager.ud_string(forKey: kAccountTokenKey), token.isEmpty == false else {
|
|
|
+ callback?(nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let header = ["Token" : token]
|
|
|
+ KMHTTP.OEM_POST(urlString: kURLAPI_oemGetPermissions, parameter: nil, headers: header) { success, dataModel, err in
|
|
|
+ if success == false {
|
|
|
+ // 清空 Token
|
|
|
+ KMDataManager.ud_set("", forKey: kAccountTokenKey)
|
|
|
+ // 清空 登陆 & 权益 数据
|
|
|
+ AccountManager.manager.saveRights(model: nil)
|
|
|
+ // 发布通知 登陆状态改变
|
|
|
+ NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
|
|
|
+ // 解除设备激活
|
|
|
+ if isActivaDevice {
|
|
|
+ self.unactivateDevice {}
|
|
|
+ }
|
|
|
+ // 处理 Code
|
|
|
+ if let codeV = dataModel?.code, isDealCode {
|
|
|
+ self.dealCode(.init(rawValue: codeV))
|
|
|
+ }
|
|
|
+
|
|
|
+ callback?(nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let model = AccountRightModel(dict: dataModel?.data as? [String : Any] ?? [:])
|
|
|
+ // 保存 登陆 & 权益 数据
|
|
|
+ AccountManager.manager.saveRights(model: model)
|
|
|
+ // 发布通知 登陆状态改变
|
|
|
+ NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
|
|
|
+
|
|
|
+ if isActivaDevice == false {
|
|
|
+ callback?(dataModel)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设备激活
|
|
|
+ if let data = model.memberInfo?.email, data.isEmpty == false {
|
|
|
+ self.activateDevice(email: data) {
|
|
|
+ callback?(dataModel)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ callback?(dataModel)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // MARK: - 处理 Code
|
|
|
+
|
|
|
+ public class func dealCode(_ code: KMHttpReponseCode?) {
|
|
|
+ if code == .passwordChanged {
|
|
|
+ self._showHud(msg: NSLocalizedString("Your password has been changed. Please login again.", comment: ""))
|
|
|
+ } else if code == .accountAtOtherDeviceLogin {
|
|
|
+// self.pwdChangedAction()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // MARK: - 激活设备
|
|
|
+
|
|
|
+ public class func activateDevice(email: String, callback: (()->Void)?) {
|
|
|
+ VerificationManager.default().activateDevice(withInfo: ["email" : email]) { status, info, err in
|
|
|
+ VerificationManager.default().verification { status, info, err in
|
|
|
+ callback?()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public class func unactivateDevice(callback: (()->Void)?) {
|
|
|
+ VerificationManager.default().unactivateDeviceWithcomplention { status, infoDict, err in
|
|
|
+ VerificationManager.default().verification {status1 , infoDict1, err1 in
|
|
|
+ callback?()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
class func gotoCompare() {
|
|
|
KMMainThreadExecute {
|
|
|
let winC = KMPurchaseCompareWindowController.sharedInstance()
|