UserState.swift 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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. func userDataSaved(user: User) -> Bool {
  21. let username = user.username
  22. let userid = user.userid
  23. let roleid = user.roleid
  24. let rolename = user.rolename
  25. let custid = user.custid
  26. let fullname = user.fullname
  27. let roles = user.roles
  28. let userDefaults = UserDefaults.standard
  29. userDefaults.set(true, forKey: IS_LOGIN)
  30. userDefaults.set(username, forKey: USERNAME)
  31. userDefaults.set(userid, forKey: USER_ID)
  32. userDefaults.set(roleid, forKey: ROLE_ID)
  33. userDefaults.set(rolename, forKey: ROLE_NAME)
  34. userDefaults.set(custid, forKey: CUST_ID)
  35. userDefaults.set(fullname, forKey: FULLNAME)
  36. userDefaults.set(roles, forKey: ROLES)
  37. userDefaults.synchronize()
  38. return true
  39. }
  40. func userDataCleared() -> Bool {
  41. let userDefaults = UserDefaults.standard
  42. userDefaults.set(false, forKey: IS_LOGIN)
  43. userDefaults.set(EMPTY_STRING, forKey: USERNAME)
  44. userDefaults.set(-1, forKey: USER_ID)
  45. userDefaults.set(EMPTY_STRING, forKey: ROLE_ID)
  46. userDefaults.set(EMPTY_STRING, forKey: ROLE_NAME)
  47. userDefaults.set(-1, forKey: CUST_ID)
  48. userDefaults.set(EMPTY_STRING, forKey: FULLNAME)
  49. userDefaults.set(EMPTY_STRING, forKey: ROLES)
  50. userDefaults.synchronize()
  51. return true
  52. }
  53. func isLoggedIn() -> Bool {
  54. let userDefaults = UserDefaults.standard
  55. return userDefaults.bool(forKey: IS_LOGIN)
  56. }
  57. func getUsername() -> String {
  58. let userDefaults = UserDefaults.standard
  59. return userDefaults.string(forKey: USERNAME) ?? EMPTY_STRING
  60. }
  61. func getUserId() -> Int {
  62. var userId = 0
  63. let userDefaults = UserDefaults.standard
  64. let savedUserId = userDefaults.integer(forKey: USER_ID)
  65. if savedUserId > 0 {
  66. userId = savedUserId
  67. }
  68. return userId
  69. }
  70. func getRoleId() -> String {
  71. let userDefaults = UserDefaults.standard
  72. return userDefaults.string(forKey: ROLE_ID) ?? EMPTY_STRING
  73. }
  74. func getRoleName() -> String {
  75. let userDefaults = UserDefaults.standard
  76. return userDefaults.string(forKey: ROLE_NAME) ?? EMPTY_STRING
  77. }
  78. func getCustId() -> Int {
  79. var custId = 0
  80. let userDefaults = UserDefaults.standard
  81. let savedCustId = userDefaults.integer(forKey: CUST_ID)
  82. if savedCustId > 0 {
  83. custId = savedCustId
  84. }
  85. return custId
  86. }
  87. func getFullname() -> String {
  88. let userDefaults = UserDefaults.standard
  89. return userDefaults.string(forKey: FULLNAME) ?? EMPTY_STRING
  90. }
  91. func getRoles() -> String {
  92. let userDefaults = UserDefaults.standard
  93. return userDefaults.string(forKey: ROLES) ?? EMPTY_STRING
  94. }
  95. func saveRoleId(roleId: String) -> Bool {
  96. let userDefaults = UserDefaults.standard
  97. userDefaults.set(roleId, forKey: ROLE_ID)
  98. userDefaults.synchronize()
  99. return true
  100. }
  101. }