mirror of
https://github.com/status-im/nimqml.git
synced 2025-02-23 03:48:19 +00:00
feat(@desktop/general): Keychain manager added
Exposed methods of KeychainManager class added to `dotherside` This change is required as part of the feature issue-2675
This commit is contained in:
parent
00ee27ca52
commit
4351b9a61f
@ -36,7 +36,7 @@ include "nimqml/private/nimqmlmacros.nim"
|
||||
include "nimqml/private/singleinstance.nim"
|
||||
include "nimqml/private/status/statusevent.nim"
|
||||
include "nimqml/private/status/statusosnotification.nim"
|
||||
|
||||
include "nimqml/private/status/statuskeychainmanager.nim"
|
||||
|
||||
proc signal_handler*(receiver: pointer, signal: cstring, slot: cstring) =
|
||||
var dosqobj = cast[DosQObject](receiver)
|
||||
|
@ -35,6 +35,7 @@ type
|
||||
DosStatusEvent = distinct pointer
|
||||
DosStatusOSNotification = DosQObject
|
||||
DosQSettings = DosQObject
|
||||
DosStatusKeychainManager = DosQObject
|
||||
|
||||
DosParameterDefinition = object
|
||||
name: cstring
|
||||
@ -371,6 +372,21 @@ proc dos_qsettings_remove(vptr: DosQSettings, key: cstring)
|
||||
proc dos_qsettings_delete(vptr: DosQSettings)
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
# DosStatusKeychainManager
|
||||
proc dos_keychainmanager_create(service: cstring, authenticationReason: cstring):
|
||||
DosStatusKeychainManager
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_keychainmanager_read_data_sync(vptr: DosStatusKeychainManager,
|
||||
key: cstring): string {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_keychainmanager_read_data_async(vptr: DosStatusKeychainManager,
|
||||
key: cstring) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_keychainmanager_store_data_async(vptr: DosStatusKeychainManager,
|
||||
key: cstring, data: cstring) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_keychainmanager_delete_data_async(vptr: DosStatusKeychainManager,
|
||||
key: cstring) {.cdecl, dynlib: dynLibName, importc.}
|
||||
proc dos_keychainmanager_delete(vptr: DosStatusKeychainManager)
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
proc dos_to_local_file(fileUrl: cstring): cstring
|
||||
{.cdecl, dynlib: dynLibName, importc.}
|
||||
|
||||
|
@ -140,7 +140,7 @@ type
|
||||
|
||||
StatusOSNotification* = ref object of QObject
|
||||
|
||||
StatusOSNotificationObject* = ref object of QObject
|
||||
StatusKeychainManager* = ref object of QObject
|
||||
|
||||
const
|
||||
UserRole* = 0x100
|
||||
|
24
src/nimqml/private/status/statuskeychainmanager.nim
Normal file
24
src/nimqml/private/status/statuskeychainmanager.nim
Normal file
@ -0,0 +1,24 @@
|
||||
proc setup(self: StatusKeychainManager, service: string,
|
||||
authenticationReason: string) =
|
||||
self.vptr = dos_keychainmanager_create(service, authenticationReason)
|
||||
|
||||
proc delete*(self: StatusKeychainManager) =
|
||||
dos_keychainmanager_delete(self.vptr)
|
||||
self.vptr.resetToNil
|
||||
|
||||
proc newStatusKeychainManager*(service: string,
|
||||
authenticationReason: string): StatusKeychainManager =
|
||||
new(result, delete)
|
||||
result.setup(service, authenticationReason)
|
||||
|
||||
proc readDataSync*(self: StatusKeychainManager, key: string): string =
|
||||
return dos_keychainmanager_read_data_sync(self.vptr, key)
|
||||
|
||||
proc readDataAsync*(self: StatusKeychainManager, key: string) =
|
||||
dos_keychainmanager_read_data_async(self.vptr, key)
|
||||
|
||||
proc storeDataAsync*(self: StatusKeychainManager, key: string, data: string) =
|
||||
dos_keychainmanager_store_data_async(self.vptr, key, data)
|
||||
|
||||
proc deleteDataAsync*(self: StatusKeychainManager, key: string) =
|
||||
dos_keychainmanager_delete_data_async(self.vptr, key)
|
Loading…
x
Reference in New Issue
Block a user