@tomei/sso 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +1 -1
  2. package/dist/__tests__/unit/components/login-user/login-user.spec.js +662 -662
  3. package/dist/__tests__/unit/components/password-hash/password-hash.service.spec.d.ts +1 -1
  4. package/dist/__tests__/unit/components/password-hash/password-hash.service.spec.js +37 -37
  5. package/dist/__tests__/unit/redis-client/redis.service.spec.d.ts +1 -1
  6. package/dist/__tests__/unit/redis-client/redis.service.spec.js +31 -31
  7. package/dist/__tests__/unit/session/session.service.spec.d.ts +1 -1
  8. package/dist/__tests__/unit/session/session.service.spec.js +54 -54
  9. package/dist/__tests__/unit/system-privilege/system-privilage.spec.js +5 -5
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.js +17 -17
  12. package/dist/src/components/building/building.d.ts +39 -0
  13. package/dist/src/components/building/building.js +126 -0
  14. package/dist/src/components/building/building.js.map +1 -0
  15. package/dist/src/components/building/building.repository.d.ts +6 -0
  16. package/dist/src/components/building/building.repository.js +38 -0
  17. package/dist/src/components/building/building.repository.js.map +1 -0
  18. package/dist/src/components/building/index.d.ts +2 -0
  19. package/dist/src/components/building/index.js +19 -0
  20. package/dist/src/components/building/index.js.map +1 -0
  21. package/dist/src/components/building-type/building-type.repository.d.ts +5 -0
  22. package/dist/src/components/building-type/building-type.repository.js +12 -0
  23. package/dist/src/components/building-type/building-type.repository.js.map +1 -0
  24. package/dist/src/components/building-type/index.d.ts +1 -0
  25. package/dist/src/components/building-type/index.js +18 -0
  26. package/dist/src/components/building-type/index.js.map +1 -0
  27. package/dist/src/components/index.d.ts +9 -7
  28. package/dist/src/components/index.js +25 -23
  29. package/dist/src/components/index.js.map +1 -1
  30. package/dist/src/components/login-history/index.d.ts +1 -1
  31. package/dist/src/components/login-history/index.js +17 -17
  32. package/dist/src/components/login-history/login-history.repository.d.ts +5 -5
  33. package/dist/src/components/login-history/login-history.repository.js +11 -11
  34. package/dist/src/components/login-user/index.d.ts +3 -3
  35. package/dist/src/components/login-user/index.js +19 -19
  36. package/dist/src/components/login-user/interfaces/index.d.ts +1 -1
  37. package/dist/src/components/login-user/interfaces/index.js +17 -17
  38. package/dist/src/components/login-user/interfaces/user-info.interface.d.ts +9 -9
  39. package/dist/src/components/login-user/interfaces/user-info.interface.js +2 -2
  40. package/dist/src/components/login-user/login-user.d.ts +46 -46
  41. package/dist/src/components/login-user/login-user.js +430 -430
  42. package/dist/src/components/login-user/user.repository.d.ts +5 -5
  43. package/dist/src/components/login-user/user.repository.js +11 -11
  44. package/dist/src/components/password-hash/index.d.ts +2 -2
  45. package/dist/src/components/password-hash/index.js +18 -18
  46. package/dist/src/components/password-hash/interfaces/index.d.ts +1 -1
  47. package/dist/src/components/password-hash/interfaces/index.js +17 -17
  48. package/dist/src/components/password-hash/interfaces/password-hash-service.interface.d.ts +4 -4
  49. package/dist/src/components/password-hash/interfaces/password-hash-service.interface.js +2 -2
  50. package/dist/src/components/password-hash/password-hash.service.d.ts +6 -6
  51. package/dist/src/components/password-hash/password-hash.service.js +27 -27
  52. package/dist/src/components/system/index.d.ts +1 -1
  53. package/dist/src/components/system/index.js +17 -17
  54. package/dist/src/components/system/system.repository.d.ts +5 -5
  55. package/dist/src/components/system/system.repository.js +11 -11
  56. package/dist/src/components/system-access/index.d.ts +1 -1
  57. package/dist/src/components/system-access/index.js +17 -17
  58. package/dist/src/components/system-access/system-access.repository.d.ts +5 -5
  59. package/dist/src/components/system-access/system-access.repository.js +11 -11
  60. package/dist/src/components/system-privilege/privilege.d.ts +6 -6
  61. package/dist/src/components/system-privilege/privilege.js +76 -76
  62. package/dist/src/components/system-privilege/system-privilege.repository.d.ts +6 -6
  63. package/dist/src/components/system-privilege/system-privilege.repository.js +34 -34
  64. package/dist/src/components/user-group/index.d.ts +1 -1
  65. package/dist/src/components/user-group/index.js +17 -17
  66. package/dist/src/components/user-group/user-group.repository.d.ts +5 -5
  67. package/dist/src/components/user-group/user-group.repository.js +11 -11
  68. package/dist/src/components/user-user-group/index.d.ts +1 -1
  69. package/dist/src/components/user-user-group/index.js +17 -17
  70. package/dist/src/components/user-user-group/user-user-group.repository.d.ts +5 -5
  71. package/dist/src/components/user-user-group/user-user-group.repository.js +11 -11
  72. package/dist/src/database.d.ts +4 -4
  73. package/dist/src/database.js +14 -14
  74. package/dist/src/index.d.ts +5 -5
  75. package/dist/src/index.js +23 -23
  76. package/dist/src/interfaces/index.d.ts +2 -2
  77. package/dist/src/interfaces/index.js +18 -18
  78. package/dist/src/interfaces/system-login.interface.d.ts +6 -6
  79. package/dist/src/interfaces/system-login.interface.js +2 -2
  80. package/dist/src/interfaces/user-session.interface.d.ts +4 -4
  81. package/dist/src/interfaces/user-session.interface.js +2 -2
  82. package/dist/src/models/authorization-code.entity.d.ts +14 -14
  83. package/dist/src/models/authorization-code.entity.js +85 -85
  84. package/dist/src/models/bearer-token.entity.d.ts +11 -11
  85. package/dist/src/models/bearer-token.entity.js +71 -71
  86. package/dist/src/models/building-type.entity.d.ts +7 -7
  87. package/dist/src/models/building-type.entity.js +49 -49
  88. package/dist/src/models/building.entity.d.ts +39 -39
  89. package/dist/src/models/building.entity.js +250 -250
  90. package/dist/src/models/city.entity.d.ts +11 -11
  91. package/dist/src/models/city.entity.js +71 -71
  92. package/dist/src/models/company.entity.d.ts +18 -18
  93. package/dist/src/models/company.entity.js +113 -113
  94. package/dist/src/models/country.entity.d.ts +15 -15
  95. package/dist/src/models/country.entity.js +91 -91
  96. package/dist/src/models/department.entity.d.ts +19 -19
  97. package/dist/src/models/department.entity.js +111 -111
  98. package/dist/src/models/group-role-privilege.entity.d.ts +17 -17
  99. package/dist/src/models/group-role-privilege.entity.js +89 -89
  100. package/dist/src/models/group-system-access.entity.d.ts +11 -11
  101. package/dist/src/models/group-system-access.entity.js +61 -61
  102. package/dist/src/models/group-system-privilege.entity.d.ts +11 -11
  103. package/dist/src/models/group-system-privilege.entity.js +61 -61
  104. package/dist/src/models/group-system-role.entity.d.ts +11 -11
  105. package/dist/src/models/group-system-role.entity.js +61 -61
  106. package/dist/src/models/login-history.entity.d.ts +12 -12
  107. package/dist/src/models/login-history.entity.js +69 -69
  108. package/dist/src/models/oauth-token.entity.d.ts +14 -14
  109. package/dist/src/models/oauth-token.entity.js +85 -85
  110. package/dist/src/models/role.entity.d.ts +17 -17
  111. package/dist/src/models/role.entity.js +101 -101
  112. package/dist/src/models/staff-type.entity.d.ts +7 -7
  113. package/dist/src/models/staff-type.entity.js +49 -49
  114. package/dist/src/models/staff.entity.d.ts +39 -39
  115. package/dist/src/models/staff.entity.js +249 -249
  116. package/dist/src/models/state.entity.d.ts +10 -10
  117. package/dist/src/models/state.entity.js +63 -63
  118. package/dist/src/models/system-accesss.entity.d.ts +6 -6
  119. package/dist/src/models/system-accesss.entity.js +50 -50
  120. package/dist/src/models/system-privilege.entity.d.ts +16 -16
  121. package/dist/src/models/system-privilege.entity.js +89 -89
  122. package/dist/src/models/system-role-privilege.entity.d.ts +11 -11
  123. package/dist/src/models/system-role-privilege.entity.js +59 -59
  124. package/dist/src/models/system-role.entity.d.ts +11 -11
  125. package/dist/src/models/system-role.entity.js +82 -82
  126. package/dist/src/models/system.entity.d.ts +19 -19
  127. package/dist/src/models/system.entity.js +145 -145
  128. package/dist/src/models/user-group.entity.d.ts +23 -23
  129. package/dist/src/models/user-group.entity.js +139 -139
  130. package/dist/src/models/user-role.entity.d.ts +12 -12
  131. package/dist/src/models/user-role.entity.js +72 -72
  132. package/dist/src/models/user-system-privileges.entity.d.ts +13 -13
  133. package/dist/src/models/user-system-privileges.entity.js +88 -88
  134. package/dist/src/models/user-system-role.entity.d.ts +11 -11
  135. package/dist/src/models/user-system-role.entity.js +59 -59
  136. package/dist/src/models/user-user-group.entity.d.ts +14 -14
  137. package/dist/src/models/user-user-group.entity.js +72 -72
  138. package/dist/src/models/user.entity.d.ts +30 -30
  139. package/dist/src/models/user.entity.js +130 -130
  140. package/dist/src/redis-client/__mocks__/jest-initial-setup.d.ts +1 -1
  141. package/dist/src/redis-client/__mocks__/jest-initial-setup.js +4 -4
  142. package/dist/src/redis-client/__mocks__/redis-mock.d.ts +2 -2
  143. package/dist/src/redis-client/__mocks__/redis-mock.js +22 -22
  144. package/dist/src/redis-client/index.d.ts +1 -1
  145. package/dist/src/redis-client/index.js +17 -17
  146. package/dist/src/redis-client/redis.service.d.ts +7 -7
  147. package/dist/src/redis-client/redis.service.js +60 -60
  148. package/dist/src/session/index.d.ts +2 -2
  149. package/dist/src/session/index.js +18 -18
  150. package/dist/src/session/interfaces/index.d.ts +1 -1
  151. package/dist/src/session/interfaces/index.js +17 -17
  152. package/dist/src/session/interfaces/session-service.interface.d.ts +6 -6
  153. package/dist/src/session/interfaces/session-service.interface.js +2 -2
  154. package/dist/src/session/session.service.d.ts +10 -10
  155. package/dist/src/session/session.service.js +62 -62
  156. package/dist/tsconfig.tsbuildinfo +1 -1
  157. package/package.json +2 -2
  158. package/src/components/building/building.repository.ts +27 -0
  159. package/src/components/building/building.ts +170 -0
  160. package/src/components/building/index.ts +3 -0
  161. package/src/components/building-type/building-type.repository.ts +11 -0
  162. package/src/components/building-type/index.ts +2 -0
  163. package/src/components/index.ts +2 -0
  164. package/src/models/building-type.entity.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomei/sso",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "Tomei SSO Package",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -57,7 +57,7 @@
57
57
  "access": "public"
58
58
  },
59
59
  "peerDependencies": {
60
- "@tomei/config": "^0.3.4",
60
+ "@tomei/config": "^0.3.5",
61
61
  "@tomei/general": "^0.5.1",
62
62
  "@tomei/mailer": "^0.5.6",
63
63
  "@types/jest": "^29.5.2",
@@ -0,0 +1,27 @@
1
+ import Building from '../../models/building.entity';
2
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
3
+
4
+ export class BuildingRepository
5
+ extends RepositoryBase<Building>
6
+ implements IRepositoryBase<Building>
7
+ {
8
+ constructor() {
9
+ super(Building);
10
+ }
11
+
12
+ async findAndCountAll(options?: any) {
13
+ try {
14
+ let buildings: any;
15
+ if (options) {
16
+ buildings = await Building.findAndCountAll(options);
17
+ } else {
18
+ buildings = await Building.findAndCountAll();
19
+ }
20
+ return buildings;
21
+ } catch (error) {
22
+ throw new Error(
23
+ `An Error occured when retriving product collection: ${error.message}`,
24
+ );
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,170 @@
1
+ import { BuildingTypeRepository } from '../building-type/building-type.repository';
2
+ import { BuildingRepository } from './building.repository';
3
+ import { LoginUser } from '../../..';
4
+ import { ApplicationConfig } from '@tomei/config';
5
+ import { Op } from 'sequelize';
6
+
7
+ export class Building {
8
+ // implement all attributes from sso_buildings table
9
+ id: number;
10
+ name: string;
11
+ code: string;
12
+ building_type_id: number;
13
+ status: string;
14
+ email: string;
15
+ mobile: string;
16
+ phone: string;
17
+ address: string;
18
+ postcode: string;
19
+ longitude: number;
20
+ latitude: number;
21
+ country_id: number;
22
+ state: string;
23
+ city: string;
24
+ brand: string;
25
+ area_staff_id: string;
26
+ opening_date;
27
+ ceased_date;
28
+ opening_hours;
29
+ image: string;
30
+ private _created_by_id;
31
+ private _updated_by_id;
32
+ private _created_at;
33
+ private _updated_at;
34
+ private _BuildingTypeId: number;
35
+ private _BuildingType: string;
36
+
37
+ private static _Repo = new BuildingRepository();
38
+ private _RepoBuildingType = new BuildingTypeRepository();
39
+
40
+ private constructor(buildingInfo) {
41
+ if (buildingInfo) {
42
+ this.id = buildingInfo.id;
43
+ this.name = buildingInfo.Name;
44
+ this.code = buildingInfo.Code;
45
+ this.building_type_id = buildingInfo.BuildingTypeId;
46
+ this.status = buildingInfo.Status;
47
+ this.email = buildingInfo.Email;
48
+ this.mobile = buildingInfo.Mobile;
49
+ this.phone = buildingInfo.Phone;
50
+ this.address = buildingInfo.Address;
51
+ this.postcode = buildingInfo.PostCode;
52
+ this.longitude = buildingInfo.Longitude;
53
+ this.latitude = buildingInfo.Latitude;
54
+ this.country_id = buildingInfo.CountryId;
55
+ this.state = buildingInfo.State;
56
+ this.city = buildingInfo.City;
57
+ this._created_by_id = buildingInfo.created_by_id;
58
+ this._updated_by_id = buildingInfo.updated_by_id;
59
+ this._created_at = buildingInfo.created_at;
60
+ this._updated_at = buildingInfo.updated_at;
61
+ this.brand = buildingInfo.Brand;
62
+ this.area_staff_id = buildingInfo.AreaStaffId;
63
+ this.opening_date = buildingInfo.OpeningDate;
64
+ this.ceased_date = buildingInfo.CeasedDate;
65
+ this.opening_hours = buildingInfo.OpeningHours;
66
+ this.image = buildingInfo.Image;
67
+ }
68
+ }
69
+
70
+ static async init(dbTransaction: any, code?: string) {
71
+ if (code) {
72
+ const building = await Building._Repo.findOne({
73
+ where: {
74
+ code: code,
75
+ },
76
+ });
77
+ if (!building) {
78
+ throw Error('Building not found.');
79
+ }
80
+ return new Building(building);
81
+ }
82
+ }
83
+
84
+ public async getBuildingType(loginUser: LoginUser, dbTransaction?: any) {
85
+ // Privilege checking
86
+ const systemCode = ApplicationConfig.getComponentConfigValue('system-code');
87
+
88
+ const isPrivileged = await loginUser.checkPrivileges(
89
+ systemCode,
90
+ 'Building - View',
91
+ );
92
+ if (!isPrivileged) {
93
+ throw new Error('You do not have permission to view Building.');
94
+ }
95
+
96
+ if (!this.building_type_id) {
97
+ throw new Error('building type is null.');
98
+ }
99
+
100
+ const buildingType = await this._RepoBuildingType.findOne({
101
+ where: {
102
+ id: this.building_type_id,
103
+ },
104
+ });
105
+
106
+ if (!buildingType) {
107
+ throw new Error('building is not found.');
108
+ }
109
+
110
+ const { id, name } = buildingType;
111
+
112
+ this._BuildingType = name;
113
+ this._BuildingTypeId = id;
114
+
115
+ return {
116
+ BuildingTypeId: this._BuildingTypeId,
117
+ BuildingType: this._BuildingType,
118
+ };
119
+ }
120
+
121
+ static async findAll(
122
+ loginUser: LoginUser,
123
+ dbTransaction: any,
124
+ page?: number,
125
+ rows?: number,
126
+ search = {},
127
+ ) {
128
+ try {
129
+ const systemCode =
130
+ ApplicationConfig.getComponentConfigValue('system-code');
131
+
132
+ const isPrivileged = await loginUser.checkPrivileges(
133
+ systemCode,
134
+ 'Building - View',
135
+ );
136
+ if (!isPrivileged) {
137
+ throw new Error('You do not have permission to view Building.');
138
+ }
139
+
140
+ const whereObj = {};
141
+
142
+ Object.keys(search).forEach((key) => {
143
+ if (search[key]) {
144
+ whereObj[key] = {
145
+ [Op.substring]: search[key],
146
+ };
147
+ }
148
+ });
149
+
150
+ let options: any = {
151
+ where: whereObj,
152
+ order: [['created_at', 'DESC']],
153
+ transaction: dbTransaction,
154
+ };
155
+
156
+ if (page && rows) {
157
+ const offset = rows * (page - 1);
158
+ options = {
159
+ ...options,
160
+ offset,
161
+ limit: rows,
162
+ };
163
+ }
164
+ const result = await Building._Repo.findAndCountAll(options);
165
+ return result;
166
+ } catch (error) {
167
+ throw error;
168
+ }
169
+ }
170
+ }
@@ -0,0 +1,3 @@
1
+ //export all files inside this folder
2
+ export * from './building';
3
+ export * from './building.repository';
@@ -0,0 +1,11 @@
1
+ import BuildingType from '../../models/building-type.entity';
2
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
3
+
4
+ export class BuildingTypeRepository
5
+ extends RepositoryBase<BuildingType>
6
+ implements IRepositoryBase<BuildingType>
7
+ {
8
+ constructor() {
9
+ super(BuildingType);
10
+ }
11
+ }
@@ -0,0 +1,2 @@
1
+ //export all files inside this folder
2
+ export * from './building-type.repository';
@@ -5,4 +5,6 @@ export * from './system';
5
5
  export * from './system-access';
6
6
  export * from './user-group';
7
7
  export * from './user-user-group';
8
+ export * from './building';
9
+ export * from './building-type';
8
10
  //test ci
@@ -28,7 +28,7 @@ export default class BuildingType extends Model {
28
28
  type: DataType.STRING,
29
29
  field: 'name',
30
30
  })
31
- Name: string;
31
+ name: string;
32
32
 
33
33
  @CreatedAt
34
34
  CreatedAt: Date;