@kernhq/module-hr 0.2.0 → 0.4.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.
- package/dist/contract/approvals.d.ts +281 -0
- package/dist/contract/approvals.d.ts.map +1 -0
- package/dist/contract/approvals.js +127 -0
- package/dist/contract/approvals.js.map +1 -0
- package/dist/contract/attendance.d.ts +240 -0
- package/dist/contract/attendance.d.ts.map +1 -0
- package/dist/contract/attendance.js +154 -0
- package/dist/contract/attendance.js.map +1 -0
- package/dist/contract/capabilities.d.ts +1 -1
- package/dist/contract/capabilities.d.ts.map +1 -1
- package/dist/contract/capabilities.js +80 -0
- package/dist/contract/capabilities.js.map +1 -1
- package/dist/contract/events.d.ts +60 -0
- package/dist/contract/events.d.ts.map +1 -1
- package/dist/contract/events.js +60 -0
- package/dist/contract/events.js.map +1 -1
- package/dist/contract/index.d.ts +3 -0
- package/dist/contract/index.d.ts.map +1 -1
- package/dist/contract/index.js +3 -0
- package/dist/contract/index.js.map +1 -1
- package/dist/contract/leave.d.ts +168 -0
- package/dist/contract/leave.d.ts.map +1 -0
- package/dist/contract/leave.js +150 -0
- package/dist/contract/leave.js.map +1 -0
- package/dist/contract/permissions.d.ts +100 -0
- package/dist/contract/permissions.d.ts.map +1 -1
- package/dist/contract/permissions.js +119 -0
- package/dist/contract/permissions.js.map +1 -1
- package/dist/contract/router.d.ts +2440 -0
- package/dist/contract/router.d.ts.map +1 -1
- package/dist/contract/router.js +393 -0
- package/dist/contract/router.js.map +1 -1
- package/dist/policy/time.d.ts +48 -0
- package/dist/policy/time.d.ts.map +1 -0
- package/dist/policy/time.js +144 -0
- package/dist/policy/time.js.map +1 -0
- package/dist/policy/working-time.d.ts +98 -0
- package/dist/policy/working-time.d.ts.map +1 -0
- package/dist/policy/working-time.js +190 -0
- package/dist/policy/working-time.js.map +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/jobs.d.ts +16 -0
- package/dist/server/jobs.d.ts.map +1 -0
- package/dist/server/jobs.js +166 -0
- package/dist/server/jobs.js.map +1 -0
- package/dist/server/router.d.ts +2731 -58
- package/dist/server/router.d.ts.map +1 -1
- package/dist/server/router.js +1306 -3
- package/dist/server/router.js.map +1 -1
- package/dist/server/schema.d.ts +3344 -1
- package/dist/server/schema.d.ts.map +1 -1
- package/dist/server/schema.js +325 -0
- package/dist/server/schema.js.map +1 -1
- package/dist/server/services/approvals.d.ts +163 -0
- package/dist/server/services/approvals.d.ts.map +1 -0
- package/dist/server/services/approvals.js +325 -0
- package/dist/server/services/approvals.js.map +1 -0
- package/dist/server/services/attendance.d.ts +150 -0
- package/dist/server/services/attendance.d.ts.map +1 -0
- package/dist/server/services/attendance.js +239 -0
- package/dist/server/services/attendance.js.map +1 -0
- package/dist/server/services/ledger.d.ts +135 -0
- package/dist/server/services/ledger.d.ts.map +1 -0
- package/dist/server/services/ledger.js +178 -0
- package/dist/server/services/ledger.js.map +1 -0
- package/dist/server/services/people.d.ts +3 -3
- package/migrations/0002_leave.sql +237 -0
- package/migrations/0003_attendance.sql +206 -0
- package/migrations/meta/0002_snapshot.json +3009 -0
- package/migrations/meta/0003_snapshot.json +3681 -0
- package/migrations/meta/_journal.json +14 -0
- package/package.json +1 -1
- package/src/contract/approvals.ts +149 -0
- package/src/contract/attendance.ts +180 -0
- package/src/contract/capabilities.ts +80 -0
- package/src/contract/events.ts +81 -0
- package/src/contract/index.ts +3 -0
- package/src/contract/leave.ts +171 -0
- package/src/contract/permissions.ts +122 -0
- package/src/contract/router.ts +481 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { Timestamp, WorkspaceId } from '@kernhq/contracts';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { IsoDate } from './models.js';
|
|
4
|
+
const ws = { workspaceId: WorkspaceId };
|
|
5
|
+
/**
|
|
6
|
+
* Leave, and the one rule everything here follows: **a balance is a sum, never a stored number.**
|
|
7
|
+
*
|
|
8
|
+
* Every grant, accrual, consumption, reversal, expiry and adjustment is an append-only ledger entry.
|
|
9
|
+
* Cancelling approved leave inserts a reversal; it does not delete the consumption. That costs a
|
|
10
|
+
* little arithmetic and buys the only thing that matters when an employee and HR disagree about a
|
|
11
|
+
* balance: a list of what happened, in order, that nobody edited.
|
|
12
|
+
*/
|
|
13
|
+
export const LeaveUnit = z.enum(['day', 'half_day', 'hour']);
|
|
14
|
+
export const LeaveType = z.object({
|
|
15
|
+
id: z.uuid(),
|
|
16
|
+
...ws,
|
|
17
|
+
key: z
|
|
18
|
+
.string()
|
|
19
|
+
.min(1)
|
|
20
|
+
.max(48)
|
|
21
|
+
.regex(/^[a-z][a-z0-9_]*$/),
|
|
22
|
+
name: z.string().min(1).max(120),
|
|
23
|
+
/** Unpaid leave still consumes calendar days; it just does not cost money. */
|
|
24
|
+
paid: z.boolean(),
|
|
25
|
+
unit: LeaveUnit,
|
|
26
|
+
color: z.string().max(32).nullable(),
|
|
27
|
+
icon: z.string().max(48).nullable(),
|
|
28
|
+
/** A sick note after N consecutive days. Null means never. */
|
|
29
|
+
requiresDocumentAfterDays: z.number().int().min(1).nullable(),
|
|
30
|
+
/** Weekends and public holidays inside a request do not consume balance. Almost always true. */
|
|
31
|
+
countsWorkingDaysOnly: z.boolean(),
|
|
32
|
+
allowNegative: z.boolean(),
|
|
33
|
+
/** How far below zero, in minutes. Only consulted when `allowNegative`. */
|
|
34
|
+
maxNegativeMinutes: z.number().int().min(0),
|
|
35
|
+
/** Sort order in pickers. */
|
|
36
|
+
order: z.number().int(),
|
|
37
|
+
archivedAt: Timestamp.nullable(),
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Why a ledger entry exists. The set is closed on purpose — a new kind of movement is a decision,
|
|
41
|
+
* not a string somebody passes in.
|
|
42
|
+
*/
|
|
43
|
+
export const LedgerKind = z.enum([
|
|
44
|
+
/** An allowance handed out: the annual entitlement, a one-off award. */
|
|
45
|
+
'grant',
|
|
46
|
+
/** Earned over time by an accrual policy. */
|
|
47
|
+
'accrual',
|
|
48
|
+
/** Spent by an approved request. Negative. */
|
|
49
|
+
'consumption',
|
|
50
|
+
/** Undoes an earlier entry, cancellation or a retroactive correction. Points at what it reverses. */
|
|
51
|
+
'reversal',
|
|
52
|
+
/** Unused balance lapsing at a carry-forward deadline. Negative. */
|
|
53
|
+
'expiry',
|
|
54
|
+
/** A human decided. Always carries a reason. */
|
|
55
|
+
'adjustment',
|
|
56
|
+
'carry_in',
|
|
57
|
+
'carry_out',
|
|
58
|
+
/** Paid out instead of taken. Negative. */
|
|
59
|
+
'encashment',
|
|
60
|
+
]);
|
|
61
|
+
export const LeaveLedgerEntry = z.object({
|
|
62
|
+
id: z.uuid(),
|
|
63
|
+
...ws,
|
|
64
|
+
personId: z.uuid(),
|
|
65
|
+
leaveTypeId: z.uuid(),
|
|
66
|
+
kind: LedgerKind,
|
|
67
|
+
/**
|
|
68
|
+
* Signed, in minutes. Minutes rather than days because half-days, hourly leave and part-time
|
|
69
|
+
* fractions all divide a day, and a decimal day accumulates rounding error across a year of them.
|
|
70
|
+
*/
|
|
71
|
+
amountMinutes: z.number().int(),
|
|
72
|
+
effectiveOn: IsoDate,
|
|
73
|
+
/** Which entitlement year this belongs to. Carry-forward and expiry work on it. */
|
|
74
|
+
periodYear: z.number().int(),
|
|
75
|
+
requestId: z.uuid().nullable(),
|
|
76
|
+
reversesEntryId: z.uuid().nullable(),
|
|
77
|
+
/** Which policy version produced it, so a recomputation can tell what it was computed with. */
|
|
78
|
+
policyHash: z.string().max(64).nullable(),
|
|
79
|
+
reason: z.string().max(500).nullable(),
|
|
80
|
+
createdBy: z.uuid().nullable(),
|
|
81
|
+
createdAt: Timestamp,
|
|
82
|
+
});
|
|
83
|
+
export const LeaveBalance = z.object({
|
|
84
|
+
personId: z.uuid(),
|
|
85
|
+
leaveTypeId: z.uuid(),
|
|
86
|
+
leaveTypeName: z.string(),
|
|
87
|
+
unit: LeaveUnit,
|
|
88
|
+
periodYear: z.number().int(),
|
|
89
|
+
/** The sum of every entry. Minutes. */
|
|
90
|
+
balanceMinutes: z.number().int(),
|
|
91
|
+
/** Approved but not yet taken — already spent, shown separately so "remaining" is not a surprise. */
|
|
92
|
+
bookedMinutes: z.number().int(),
|
|
93
|
+
/** Submitted and not yet decided. Not spent, but not available either. */
|
|
94
|
+
pendingMinutes: z.number().int(),
|
|
95
|
+
/** `balance - pending`. What a person can actually request today without going negative. */
|
|
96
|
+
availableMinutes: z.number().int(),
|
|
97
|
+
/** The same figures in whatever unit the type uses, for display. */
|
|
98
|
+
balance: z.number(),
|
|
99
|
+
available: z.number(),
|
|
100
|
+
});
|
|
101
|
+
export const LeaveRequestStatus = z.enum([
|
|
102
|
+
'draft',
|
|
103
|
+
'pending',
|
|
104
|
+
'approved',
|
|
105
|
+
'rejected',
|
|
106
|
+
'cancelled',
|
|
107
|
+
/** Approved, then cancelled or corrected afterwards. The ledger carries a reversal. */
|
|
108
|
+
'withdrawn',
|
|
109
|
+
]);
|
|
110
|
+
/** Which half of a day a request starts or ends on. */
|
|
111
|
+
export const DayPart = z.enum(['full', 'morning', 'afternoon']);
|
|
112
|
+
export const LeaveRequest = z.object({
|
|
113
|
+
id: z.uuid(),
|
|
114
|
+
...ws,
|
|
115
|
+
personId: z.uuid(),
|
|
116
|
+
leaveTypeId: z.uuid(),
|
|
117
|
+
startsOn: IsoDate,
|
|
118
|
+
endsOn: IsoDate,
|
|
119
|
+
startPart: DayPart,
|
|
120
|
+
endPart: DayPart,
|
|
121
|
+
/** For hourly leave. Null for day-based types. */
|
|
122
|
+
hours: z.number().min(0).max(24).nullable(),
|
|
123
|
+
/** Working days consumed, after the calendar is applied. Recomputed on approval. */
|
|
124
|
+
workingDays: z.number(),
|
|
125
|
+
minutes: z.number().int(),
|
|
126
|
+
status: LeaveRequestStatus,
|
|
127
|
+
reason: z.string().max(1000).nullable(),
|
|
128
|
+
documentFileId: z.uuid().nullable(),
|
|
129
|
+
approvalRequestId: z.uuid().nullable(),
|
|
130
|
+
decidedAt: Timestamp.nullable(),
|
|
131
|
+
createdAt: Timestamp,
|
|
132
|
+
updatedAt: Timestamp,
|
|
133
|
+
});
|
|
134
|
+
/** What a request would cost, before anybody submits it. */
|
|
135
|
+
export const LeaveSimulation = z.object({
|
|
136
|
+
workingDays: z.number(),
|
|
137
|
+
minutes: z.number().int(),
|
|
138
|
+
/** Day by day, so somebody can see *why* a five-day request costs three. */
|
|
139
|
+
days: z.array(z.object({
|
|
140
|
+
date: IsoDate,
|
|
141
|
+
fraction: z.number(),
|
|
142
|
+
counted: z.boolean(),
|
|
143
|
+
reason: z.string().nullable(),
|
|
144
|
+
})),
|
|
145
|
+
balanceBeforeMinutes: z.number().int(),
|
|
146
|
+
balanceAfterMinutes: z.number().int(),
|
|
147
|
+
/** Reasons this would be refused if submitted. Empty means it would go through. */
|
|
148
|
+
blockers: z.array(z.object({ code: z.string(), message: z.string() })),
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=leave.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leave.js","sourceRoot":"","sources":["../../src/contract/leave.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,6 +140,92 @@ export declare const hrPermissions: readonly [{
|
|
|
140
140
|
readonly scope: "workspace";
|
|
141
141
|
readonly defaultRoles: [];
|
|
142
142
|
readonly dangerous: true;
|
|
143
|
+
}, {
|
|
144
|
+
readonly key: "hr.leave.request";
|
|
145
|
+
readonly label: "Request time off";
|
|
146
|
+
readonly scope: "workspace";
|
|
147
|
+
readonly defaultRoles: ["owner", "admin", "member"];
|
|
148
|
+
readonly dangerous: false;
|
|
149
|
+
}, {
|
|
150
|
+
readonly key: "hr.leave.view";
|
|
151
|
+
readonly label: "View leave types and your own balance";
|
|
152
|
+
readonly scope: "workspace";
|
|
153
|
+
readonly defaultRoles: ["owner", "admin", "member"];
|
|
154
|
+
readonly dangerous: false;
|
|
155
|
+
}, {
|
|
156
|
+
readonly key: "hr.leave.view_team";
|
|
157
|
+
readonly label: "View your team's leave and balances";
|
|
158
|
+
readonly scope: "object";
|
|
159
|
+
readonly defaultRoles: ["owner", "admin"];
|
|
160
|
+
readonly dangerous: false;
|
|
161
|
+
}, {
|
|
162
|
+
readonly key: "hr.leave.view_ledger";
|
|
163
|
+
readonly label: "View the movements behind somebody's balance";
|
|
164
|
+
readonly scope: "workspace";
|
|
165
|
+
readonly defaultRoles: ["owner", "admin"];
|
|
166
|
+
readonly dangerous: false;
|
|
167
|
+
}, {
|
|
168
|
+
readonly key: "hr.leave.manage";
|
|
169
|
+
readonly label: "Configure leave types";
|
|
170
|
+
readonly scope: "workspace";
|
|
171
|
+
readonly defaultRoles: ["owner", "admin"];
|
|
172
|
+
readonly dangerous: false;
|
|
173
|
+
}, {
|
|
174
|
+
readonly key: "hr.leave.adjust";
|
|
175
|
+
readonly label: "Change somebody's balance by hand";
|
|
176
|
+
readonly description: "Adds or removes leave directly. Every adjustment is recorded with its reason.";
|
|
177
|
+
readonly scope: "workspace";
|
|
178
|
+
readonly defaultRoles: [];
|
|
179
|
+
readonly dangerous: true;
|
|
180
|
+
}, {
|
|
181
|
+
readonly key: "hr.attendance.punch";
|
|
182
|
+
readonly label: "Clock yourself in and out";
|
|
183
|
+
readonly scope: "workspace";
|
|
184
|
+
readonly defaultRoles: ["owner", "admin", "member"];
|
|
185
|
+
readonly dangerous: false;
|
|
186
|
+
}, {
|
|
187
|
+
readonly key: "hr.attendance.view";
|
|
188
|
+
readonly label: "View your own attendance";
|
|
189
|
+
readonly scope: "workspace";
|
|
190
|
+
readonly defaultRoles: ["owner", "admin", "member"];
|
|
191
|
+
readonly dangerous: false;
|
|
192
|
+
}, {
|
|
193
|
+
readonly key: "hr.attendance.view_team";
|
|
194
|
+
readonly label: "View your team's attendance";
|
|
195
|
+
readonly scope: "object";
|
|
196
|
+
readonly defaultRoles: ["owner", "admin"];
|
|
197
|
+
readonly dangerous: false;
|
|
198
|
+
}, {
|
|
199
|
+
readonly key: "hr.attendance.manage";
|
|
200
|
+
readonly label: "Correct punches, schedules and day sheets";
|
|
201
|
+
readonly description: "Voids punches and recomputes days. Every change leaves the original visible.";
|
|
202
|
+
readonly scope: "workspace";
|
|
203
|
+
readonly defaultRoles: ["owner", "admin"];
|
|
204
|
+
readonly dangerous: true;
|
|
205
|
+
}, {
|
|
206
|
+
readonly key: "hr.overtime.view";
|
|
207
|
+
readonly label: "View overtime";
|
|
208
|
+
readonly scope: "workspace";
|
|
209
|
+
readonly defaultRoles: ["owner", "admin"];
|
|
210
|
+
readonly dangerous: false;
|
|
211
|
+
}, {
|
|
212
|
+
readonly key: "hr.overtime.manage";
|
|
213
|
+
readonly label: "Approve and adjust overtime";
|
|
214
|
+
readonly scope: "workspace";
|
|
215
|
+
readonly defaultRoles: ["owner", "admin"];
|
|
216
|
+
readonly dangerous: false;
|
|
217
|
+
}, {
|
|
218
|
+
readonly key: "hr.approval.manage";
|
|
219
|
+
readonly label: "Configure approval chains";
|
|
220
|
+
readonly scope: "workspace";
|
|
221
|
+
readonly defaultRoles: ["owner", "admin"];
|
|
222
|
+
readonly dangerous: false;
|
|
223
|
+
}, {
|
|
224
|
+
readonly key: "hr.approval.delegate";
|
|
225
|
+
readonly label: "Hand your approvals to somebody else while away";
|
|
226
|
+
readonly scope: "workspace";
|
|
227
|
+
readonly defaultRoles: ["owner", "admin", "member"];
|
|
228
|
+
readonly dangerous: false;
|
|
143
229
|
}, {
|
|
144
230
|
readonly key: "hr.field.manage";
|
|
145
231
|
readonly label: "Add and edit custom fields";
|
|
@@ -170,5 +256,19 @@ export declare const HR_PERMISSIONS: {
|
|
|
170
256
|
readonly documentView: "hr.document.view";
|
|
171
257
|
readonly documentManage: "hr.document.manage";
|
|
172
258
|
readonly fieldManage: "hr.field.manage";
|
|
259
|
+
readonly leaveRequest: "hr.leave.request";
|
|
260
|
+
readonly leaveView: "hr.leave.view";
|
|
261
|
+
readonly leaveViewTeam: "hr.leave.view_team";
|
|
262
|
+
readonly leaveViewLedger: "hr.leave.view_ledger";
|
|
263
|
+
readonly leaveManage: "hr.leave.manage";
|
|
264
|
+
readonly leaveAdjust: "hr.leave.adjust";
|
|
265
|
+
readonly attendancePunch: "hr.attendance.punch";
|
|
266
|
+
readonly attendanceView: "hr.attendance.view";
|
|
267
|
+
readonly attendanceViewTeam: "hr.attendance.view_team";
|
|
268
|
+
readonly attendanceManage: "hr.attendance.manage";
|
|
269
|
+
readonly overtimeView: "hr.overtime.view";
|
|
270
|
+
readonly overtimeManage: "hr.overtime.manage";
|
|
271
|
+
readonly approvalManage: "hr.approval.manage";
|
|
272
|
+
readonly approvalDelegate: "hr.approval.delegate";
|
|
173
273
|
};
|
|
174
274
|
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoRxB,CAAA;AAEF,+DAA+D;AAC/D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCjB,CAAA"}
|
|
@@ -173,6 +173,111 @@ export const hrPermissions = definePermissions([
|
|
|
173
173
|
defaultRoles: [],
|
|
174
174
|
dangerous: true,
|
|
175
175
|
},
|
|
176
|
+
// ---------------------------------------------------------------- leave
|
|
177
|
+
{
|
|
178
|
+
key: 'hr.leave.request',
|
|
179
|
+
label: 'Request time off',
|
|
180
|
+
// Everybody. A permission an employee cannot lack is noise, but this one is genuinely revocable
|
|
181
|
+
// — a contractor who books time off through their agency should not have the button.
|
|
182
|
+
scope: 'workspace',
|
|
183
|
+
defaultRoles: ['owner', 'admin', 'member'],
|
|
184
|
+
dangerous: false,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
key: 'hr.leave.view',
|
|
188
|
+
label: 'View leave types and your own balance',
|
|
189
|
+
scope: 'workspace',
|
|
190
|
+
defaultRoles: ['owner', 'admin', 'member'],
|
|
191
|
+
dangerous: false,
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
key: 'hr.leave.view_team',
|
|
195
|
+
label: "View your team's leave and balances",
|
|
196
|
+
scope: 'object',
|
|
197
|
+
defaultRoles: ['owner', 'admin'],
|
|
198
|
+
dangerous: false,
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
key: 'hr.leave.view_ledger',
|
|
202
|
+
label: "View the movements behind somebody's balance",
|
|
203
|
+
scope: 'workspace',
|
|
204
|
+
defaultRoles: ['owner', 'admin'],
|
|
205
|
+
dangerous: false,
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
key: 'hr.leave.manage',
|
|
209
|
+
label: 'Configure leave types',
|
|
210
|
+
scope: 'workspace',
|
|
211
|
+
defaultRoles: ['owner', 'admin'],
|
|
212
|
+
dangerous: false,
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
key: 'hr.leave.adjust',
|
|
216
|
+
label: "Change somebody's balance by hand",
|
|
217
|
+
description: 'Adds or removes leave directly. Every adjustment is recorded with its reason.',
|
|
218
|
+
scope: 'workspace',
|
|
219
|
+
defaultRoles: [],
|
|
220
|
+
dangerous: true,
|
|
221
|
+
},
|
|
222
|
+
// ---------------------------------------------------------------- attendance
|
|
223
|
+
{
|
|
224
|
+
key: 'hr.attendance.punch',
|
|
225
|
+
label: 'Clock yourself in and out',
|
|
226
|
+
scope: 'workspace',
|
|
227
|
+
defaultRoles: ['owner', 'admin', 'member'],
|
|
228
|
+
dangerous: false,
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
key: 'hr.attendance.view',
|
|
232
|
+
label: 'View your own attendance',
|
|
233
|
+
scope: 'workspace',
|
|
234
|
+
defaultRoles: ['owner', 'admin', 'member'],
|
|
235
|
+
dangerous: false,
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
key: 'hr.attendance.view_team',
|
|
239
|
+
label: "View your team's attendance",
|
|
240
|
+
scope: 'object',
|
|
241
|
+
defaultRoles: ['owner', 'admin'],
|
|
242
|
+
dangerous: false,
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
key: 'hr.attendance.manage',
|
|
246
|
+
label: 'Correct punches, schedules and day sheets',
|
|
247
|
+
description: 'Voids punches and recomputes days. Every change leaves the original visible.',
|
|
248
|
+
scope: 'workspace',
|
|
249
|
+
defaultRoles: ['owner', 'admin'],
|
|
250
|
+
dangerous: true,
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
key: 'hr.overtime.view',
|
|
254
|
+
label: 'View overtime',
|
|
255
|
+
scope: 'workspace',
|
|
256
|
+
defaultRoles: ['owner', 'admin'],
|
|
257
|
+
dangerous: false,
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
key: 'hr.overtime.manage',
|
|
261
|
+
label: 'Approve and adjust overtime',
|
|
262
|
+
scope: 'workspace',
|
|
263
|
+
defaultRoles: ['owner', 'admin'],
|
|
264
|
+
dangerous: false,
|
|
265
|
+
},
|
|
266
|
+
// ---------------------------------------------------------------- approvals
|
|
267
|
+
{
|
|
268
|
+
key: 'hr.approval.manage',
|
|
269
|
+
label: 'Configure approval chains',
|
|
270
|
+
scope: 'workspace',
|
|
271
|
+
defaultRoles: ['owner', 'admin'],
|
|
272
|
+
dangerous: false,
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
key: 'hr.approval.delegate',
|
|
276
|
+
label: 'Hand your approvals to somebody else while away',
|
|
277
|
+
scope: 'workspace',
|
|
278
|
+
defaultRoles: ['owner', 'admin', 'member'],
|
|
279
|
+
dangerous: false,
|
|
280
|
+
},
|
|
176
281
|
// ---------------------------------------------------------------- fields
|
|
177
282
|
{
|
|
178
283
|
key: 'hr.field.manage',
|
|
@@ -205,5 +310,19 @@ export const HR_PERMISSIONS = {
|
|
|
205
310
|
documentView: 'hr.document.view',
|
|
206
311
|
documentManage: 'hr.document.manage',
|
|
207
312
|
fieldManage: 'hr.field.manage',
|
|
313
|
+
leaveRequest: 'hr.leave.request',
|
|
314
|
+
leaveView: 'hr.leave.view',
|
|
315
|
+
leaveViewTeam: 'hr.leave.view_team',
|
|
316
|
+
leaveViewLedger: 'hr.leave.view_ledger',
|
|
317
|
+
leaveManage: 'hr.leave.manage',
|
|
318
|
+
leaveAdjust: 'hr.leave.adjust',
|
|
319
|
+
attendancePunch: 'hr.attendance.punch',
|
|
320
|
+
attendanceView: 'hr.attendance.view',
|
|
321
|
+
attendanceViewTeam: 'hr.attendance.view_team',
|
|
322
|
+
attendanceManage: 'hr.attendance.manage',
|
|
323
|
+
overtimeView: 'hr.overtime.view',
|
|
324
|
+
overtimeManage: 'hr.overtime.manage',
|
|
325
|
+
approvalManage: 'hr.approval.manage',
|
|
326
|
+
approvalDelegate: 'hr.approval.delegate',
|
|
208
327
|
};
|
|
209
328
|
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"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"}
|