UserState.swift 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. //
  2. // UserState.swift
  3. // Sirani
  4. //
  5. // Created by Anhar Solehudin on 07/04/19.
  6. // Copyright © 2019 Anhar Solehudin. All rights reserved.
  7. //
  8. import Foundation
  9. class UserState {
  10. static let instance = UserState()
  11. private let EMPTY_STRING = ""
  12. private let IS_LOGIN = "is_login"
  13. private let USERNAME = "username"
  14. private let USER_ID = "userid"
  15. private let ROLE_ID = "roleid"
  16. private let ROLE_NAME = "rolename"
  17. private let CUST_ID = "custid"
  18. private let FULLNAME = "fullname"
  19. private let ROLES = "roles"
  20. private let AllowConnection = "AllowConnection"
  21. func userDataSaved(user: User) -> Bool {
  22. let username = user.username
  23. let userid = user.userid
  24. let roleid = user.roleid
  25. let rolename = user.rolename
  26. let custid = user.custid
  27. let fullname = user.fullname
  28. let roles = user.roles
  29. let userDefaults = UserDefaults.standard
  30. userDefaults.set(true, forKey: IS_LOGIN)
  31. userDefaults.set(username, forKey: USERNAME)
  32. userDefaults.set(userid, forKey: USER_ID)
  33. userDefaults.set(roleid, forKey: ROLE_ID)
  34. userDefaults.set(rolename, forKey: ROLE_NAME)
  35. userDefaults.set(custid, forKey: CUST_ID)
  36. userDefaults.set(fullname, forKey: FULLNAME)
  37. userDefaults.set(roles, forKey: ROLES)
  38. userDefaults.synchronize()
  39. return true
  40. }
  41. func userDataCleared() -> Bool {
  42. let userDefaults = UserDefaults.standard
  43. userDefaults.set(false, forKey: IS_LOGIN)
  44. userDefaults.set(EMPTY_STRING, forKey: USERNAME)
  45. userDefaults.set(-1, forKey: USER_ID)
  46. userDefaults.set(EMPTY_STRING, forKey: ROLE_ID)
  47. userDefaults.set(EMPTY_STRING, forKey: ROLE_NAME)
  48. userDefaults.set(-1, forKey: CUST_ID)
  49. userDefaults.set(EMPTY_STRING, forKey: FULLNAME)
  50. userDefaults.set(EMPTY_STRING, forKey: ROLES)
  51. userDefaults.synchronize()
  52. return true
  53. }
  54. func isLoggedIn() -> Bool {
  55. let userDefaults = UserDefaults.standard
  56. return userDefaults.bool(forKey: IS_LOGIN)
  57. }
  58. func getUsername() -> String {
  59. let userDefaults = UserDefaults.standard
  60. return userDefaults.string(forKey: USERNAME) ?? EMPTY_STRING
  61. }
  62. func getUserId() -> Int {
  63. var userId = 0
  64. let userDefaults = UserDefaults.standard
  65. let savedUserId = userDefaults.integer(forKey: USER_ID)
  66. if savedUserId > 0 {
  67. userId = savedUserId
  68. }
  69. return userId
  70. }
  71. func getRoleId() -> String {
  72. let userDefaults = UserDefaults.standard
  73. return userDefaults.string(forKey: ROLE_ID) ?? EMPTY_STRING
  74. }
  75. func getRoleName() -> String {
  76. let userDefaults = UserDefaults.standard
  77. return userDefaults.string(forKey: ROLE_NAME) ?? EMPTY_STRING
  78. }
  79. func getCustId() -> Int {
  80. var custId = 0
  81. let userDefaults = UserDefaults.standard
  82. let savedCustId = userDefaults.integer(forKey: CUST_ID)
  83. if savedCustId > 0 {
  84. custId = savedCustId
  85. }
  86. return custId
  87. }
  88. func getFullname() -> String {
  89. let userDefaults = UserDefaults.standard
  90. return userDefaults.string(forKey: FULLNAME) ?? EMPTY_STRING
  91. }
  92. func getRoles() -> String {
  93. let userDefaults = UserDefaults.standard
  94. return userDefaults.string(forKey: ROLES) ?? EMPTY_STRING
  95. }
  96. func saveRoleId(roleId: String) -> Bool {
  97. let userDefaults = UserDefaults.standard
  98. userDefaults.set(roleId, forKey: ROLE_ID)
  99. userDefaults.synchronize()
  100. return true
  101. }
  102. func setAllowConnection(status:Bool) {
  103. let userDefaults = UserDefaults.standard
  104. userDefaults.set(status, forKey: AllowConnection)
  105. userDefaults.synchronize()
  106. }
  107. func isAllowConnection() -> Bool {
  108. let userDefaults = UserDefaults.standard
  109. return userDefaults.bool(forKey: AllowConnection)
  110. }
  111. }