1"use strict";(globalThis.webpackChunkicehrm_docs=globalThis.webpackChunkicehrm_docs||[]).push([[4823],{8968(e,s,n){n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>t,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"employees/users-employees","title":"Users, User Levels & Managers","description":"This page covers three ideas that make access control in IceHrm click: the","source":"@site/docs/employees/users-employees.md","sourceDirName":"employees","slug":"/employees/users-employees","permalink":"/docs/employees/users-employees","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"Users, User Levels & Managers","sidebar_position":6},"sidebar":"tutorialSidebar","previous":{"title":"Browsing and Updating Employee Records","permalink":"/docs/employees/employee-records"},"next":{"title":"Custom User Permissions","permalink":"/docs/employees/custom-user-permissions"}}');var i=n(4848),l=n(8453);const o={title:"Users, User Levels & Managers",sidebar_position:6},t="Users, User Levels & Managers",a={},d=[{value:"Users vs employees",id:"users-vs-employees",level:2},{value:"Managing users",id:"managing-users",level:2},{value:"User levels",id:"user-levels",level:2},{value:"User roles",id:"user-roles",level:2},{value:"Managers (supervisors)",id:"managers-supervisors",level:2},{value:"Checklist for setting up a new person",id:"checklist-for-setting-up-a-new-person",level:2},{value:"Related topics",id:"related-topics",level:2}];function c(e){const s={a:"a",admonition:"admonition",em:"em",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"users-user-levels--managers",children:"Users, User Levels & Managers"})}),"\n",(0,i.jsxs)(s.p,{children:["This page covers three ideas that make access control in IceHrm click: the\ndifference between a ",(0,i.jsx)(s.em,{children:"user"})," and an ",(0,i.jsx)(s.em,{children:"employee"}),", what each ",(0,i.jsx)(s.em,{children:"user level"})," can do, and\nhow ",(0,i.jsx)(s.em,{children:"managers"})," (supervisors) fit in."]}),"\n",(0,i.jsx)(s.h2,{id:"users-vs-employees",children:"Users vs employees"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["An ",(0,i.jsx)(s.strong,{children:"employee"})," is an HR record \u2014 name, job, salary, leave balances, documents."]}),"\n",(0,i.jsxs)(s.li,{children:["A ",(0,i.jsx)(s.strong,{children:"user"})," is a login account \u2014 username, email, password, and a user level."]}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"They are linked, but separate:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["A regular staff member needs ",(0,i.jsx)(s.strong,{children:"both"})," \u2014 an employee record and a user account\nlinked to it."]}),"\n",(0,i.jsxs)(s.li,{children:["A system administrator only needs a ",(0,i.jsx)(s.strong,{children:"user account"})," (an employee record is\noptional)."]}),"\n",(0,i.jsxs)(s.li,{children:["Someone kept for historical records needs only an ",(0,i.jsx)(s.strong,{children:"employee record"})," \u2014 no login."]}),"\n"]}),"\n",(0,i.jsx)(s.admonition,{type:"warning",children:(0,i.jsxs)(s.p,{children:["Creating an employee record does ",(0,i.jsx)(s.strong,{children:"not"})," let that person log in. Create a user\naccount for them, or use the ",(0,i.jsx)(s.a,{href:"./adding-employees",children:"invitation method"})," which sets up\nboth at once."]})}),"\n",(0,i.jsx)(s.h2,{id:"managing-users",children:"Managing users"}),"\n",(0,i.jsxs)(s.p,{children:["User accounts live at ",(0,i.jsx)(s.strong,{children:"People > Users"}),". Each row shows the username, email, the\nemployee it is linked to, and the user level."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Users list",src:n(4672).A+"",width:"1440",height:"900"})}),"\n",(0,i.jsx)(s.p,{children:"To create a user account:"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["Go to ",(0,i.jsx)(s.strong,{children:"People > Users"})," and click ",(0,i.jsx)(s.strong,{children:"Add New"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["Fill in:","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"User Name"})," \u2014 a unique login name."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Email"})," \u2014 the person's email address; their login details are sent here."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Employee"})," \u2014 pick the employee record this account belongs to."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"User Level"})," \u2014 usually ",(0,i.jsx)(s.em,{children:"Employee"})," (see below)."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["Click ",(0,i.jsx)(s.strong,{children:"Save"}),"."]}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Add user form",src:n(8712).A+"",width:"1440",height:"900"})}),"\n",(0,i.jsx)(s.h2,{id:"user-levels",children:"User levels"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Admin"})," \u2014 full access to everything. For HR directors and system administrators."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Manager"})," \u2014 can see and manage their own team members and approve their\nrequests. For department heads and team leaders."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Employee"})," \u2014 access to their own information and requests only. For regular staff."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Restricted Admin / Restricted Manager / Restricted Employee"})," \u2014 the same\nroles, but with ",(0,i.jsx)(s.strong,{children:"no access by default"}),": you grant exactly the modules and\npermissions they need. Useful for contractors, payroll assistants, or a\nrecruitment-only manager. See\n",(0,i.jsx)(s.a,{href:"./custom-user-permissions",children:"Custom user permissions"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["A quick example of the difference: with leave requests, an ",(0,i.jsx)(s.strong,{children:"Admin"})," sees every\nemployee's requests, while a ",(0,i.jsx)(s.strong,{children:"Manager"})," only sees requests from people who report\nto them."]}),"\n",(0,i.jsxs)(s.p,{children:["To change someone's level, edit their user at ",(0,i.jsx)(s.strong,{children:"People > Users"})," and pick a new\n",(0,i.jsx)(s.strong,{children:"User Level"}),"."]}),"\n",(0,i.jsx)(s.h2,{id:"user-roles",children:"User roles"}),"\n",(0,i.jsxs)(s.p,{children:["Beyond the built-in levels, the ",(0,i.jsx)(s.strong,{children:"User Roles"}),' tab lets you define named roles\n(for example "Attendance Manager") with specific permissions, and attach them to\nusers. This is an advanced feature covered in\n',(0,i.jsx)(s.a,{href:"./custom-user-permissions",children:"Custom user permissions"}),"."]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"User Roles tab",src:n(8251).A+"",width:"1440",height:"900"})}),"\n",(0,i.jsx)(s.h2,{id:"managers-supervisors",children:"Managers (supervisors)"}),"\n",(0,i.jsx)(s.p,{children:"The reporting relationship decides who approves an employee's leave, timesheets,\nand expenses, and whose records a manager can see."}),"\n",(0,i.jsx)(s.p,{children:"To assign a manager:"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["Go to ",(0,i.jsx)(s.strong,{children:"People > Employees"})," and open the employee."]}),"\n",(0,i.jsxs)(s.li,{children:["Click ",(0,i.jsx)(s.strong,{children:"Edit"})," and go to the ",(0,i.jsx)(s.strong,{children:"Report"})," step."]}),"\n",(0,i.jsxs)(s.li,{children:["Choose their ",(0,i.jsx)(s.strong,{children:"Manager"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["Optionally add ",(0,i.jsx)(s.strong,{children:"Indirect Managers"})," \u2014 additional people who can act on this\nemployee's requests in approval workflows."]}),"\n",(0,i.jsxs)(s.li,{children:["Click ",(0,i.jsx)(s.strong,{children:"Save"}),"."]}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.img,{alt:"Report step with manager and approvers",src:n(5683).A+"",width:"1440",height:"900"})}),"\n",(0,i.jsx)(s.admonition,{type:"info",children:(0,i.jsxs)(s.p,{children:["For a manager to see their team members under ",(0,i.jsx)(s.strong,{children:"People > Employees"}),", their user\naccount must have the ",(0,i.jsx)(s.strong,{children:"Manager"})," (or Admin) user level."]})}
1),"\n",(0,i.jsx)(s.h2,{id:"checklist-for-setting-up-a-new-person",children:"Checklist for setting up a new person"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Employee record created with a unique employee number"}),"\n",(0,i.jsx)(s.li,{children:"User account created with a valid email"}),"\n",(0,i.jsx)(s.li,{children:"User linked to the correct employee"}),"\n",(0,i.jsx)(s.li,{children:"Correct user level chosen"}),"\n",(0,i.jsx)(s.li,{children:"Manager assigned on the Report step"}),"\n",(0,i.jsx)(s.li,{children:"Indirect managers added if your approval flow needs them"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"related-topics",children:"Related topics"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"./adding-employees",children:"Adding employees"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"./custom-user-permissions",children:"Custom user permissions"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"./department-head",children:"Defining a head of structure"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},5683(e,s,n){n.d(s,{A:()=>r});const r=n.p+"assets/images/employees-edit-report-step-3422c652198d793cf841d68d8e7e8120.png"},8712(e,s,n){n.d(s,{A:()=>r});const r=n.p+"assets/images/users-add-form-03a06ae460fc5a6f3ecae156e6a13185.png"},4672(e,s,n){n.d(s,{A:()=>r});const r=n.p+"assets/images/users-list-11b3199bdb02fb2ba53573d68d5724aa.png"},8251(e,s,n){n.d(s,{A:()=>r});const r=n.p+"assets/images/users-user-roles-tab-740d81ccda56012097803a102dfd5269.png"},8453(e,s,n){n.d(s,{R:()=>o,x:()=>t});var r=n(6540);const i={},l=r.createContext(i);function o(e){const s=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function t(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(l.Provider,{value:s},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.