HandyCafe Docs
owner

Mga Tungkulin ng Cashier sa Mga Pahintulot

Gumagamit ng HandyCafe ng role-based access control (RBAC) para i-manage kung ano ang maaaring makita at gawin ng bawat staff member sa loob ng system. Ang bawat cashier ay naka-assign sa isang role at ang role na iyon ay nagtatakda ng kanilang eksaktong permissions sa buong application.


Mga Uri ng Role

Nagbibigay ang HandyCafe ng tatlong uri ng roles:

Admin

Ang Admin role ay nagbibigay ng walang limitasyong access sa bawat feature sa system. Ang mga Admin ay maaaring mag-manage ng mga cashier, mag-view ng lahat ng reports, mag-modify ng settings, at magsagawa ng anumang operasyon. Ang role na ito ay para sa mga may-ari ng cafe at senior managers na naganap ng buong kontrol.

Palaging may kahit isang Admin account sa system. Hindi maaaring i-delete o bawasan ang permissions ng Admin role.

Default

Ang Default role ay walang espesyal na permissions na naka-assign. Ang cashier na may Default na papel ay maaaring mag-log in at magsagawa ng mga pangunahing operasyon ngunit hindi ma-access ang mga restricted areas tulad ng member management, reporting, o console configuration. Gamitin ito bilang panimulang punto para sa mga bagong hire na kailangan lang humawak ng mga pangunahing gawain.

Custom

Ang custom roles ay nagbibigay-daan sa iyo na i-define nang eksakto kung aling mga pahintulot ang mayroon ang isang cashier. Pumili ng pangalan, mag-set ng level, at pagkatapos ay mag-check o mag-uncheck ng individual na permission flags sa anim na kategorya. Nagbibigay ito sa iyo ng fine-grained na kontrol sa maaaring i-access ng bawat miyembro ng kawani.


Mga Kategorya ng Permission

Ang HandyCafe ay may 22 individual na permission flags na naka-organize sa 6 na kategorya. Ang bawat flag ay kumokontrol ng partikular na aksyon o view sa loob ng system.

1. Authentication (1 flag)

Flag Paglalarawan
CLIENT_LOGIN magbigay ng cashier na mag-log in ng client PCs (mag-start ng sessions para sa mga customer)

Kung walang permiso na ito, hindi maaaring mag-start o mag-manage ng client sessions at cashier.

2. Members (6 flags)

Flag Paglalarawan
TINGNAN Makita ang members list at member details
ADD Gumawa ng mga bagong member accounts
TANGGALIN Mag-alis ng member accounts mula sa system
I-UPDATE Mag-edit ng mga umiiral na member information (pangalan, balanse, atbp.)
DISPLAY_EMAIL Makita ang member email addresses sa members list
DISPLAY_GSM Makita ang member phone numbers sa members list

Ang cashier na may VIEW lamang ay maaaring mag-browse ng members list ngunit hindi makakagawa, makakapag-edit, o makakapag-alis ng anumang miyembro. Ang DISPLAY_EMAIL at DISPLAY_GSM flags ay kumokontrol kung nakikita ang maraming contact information. Kapaki-pakinabang ito para sa privacy compliance kung saan hindi lahat ng staff ay dapat makakita ng personal data.

3. Consoles (4 flags)

Flag Paglalarawan
TINGNAN Makita ang consoles page at console status cards
ADD Magrehistro ng mga bagong gaming console sa system
DELETE Mag-alis ng mga console mula sa system
UPDATE Mag-edit ng console details (pangalan, MAC address, pricing)

4. Logs (4 flags)

Flag Paglalarawan
TINGNAN I-access ang logs page
DISPLAY_FULL Makita ang kumpletong log history (lahat ng petsa)
DISPLAY_TODAY Makita lamang ang log entries ngayong araw
TANGGALIN Mag-delete ng log entries

Kung ang cashier ay may VIEW at DISPLAY_TODAY ngunit wala ang DISPLAY_FULL, makikita lang nila ang log entries mula sa kasalukuyang araw. Kapaki-pakinabang ito para sa shift supervisors na kailangang i-monitor ang kasalukuyang aktibidad nang walang access sa historical records.

5. Reports (3 flags)

Flag Paglalarawan
PAGE_VIEW I-access ang pahina ng ulat/cash report
DISPLAY_FULL Makita ang kumpletong report history (lahat ng petsa)
DISPLAY_TODAY Makita lamang ang data ng report ngayong araw

Katulad ng logs, ang report permissions ay nagbibigay-daan sa iyo na kontrolin kung ang staff ay makakakita ng buong financial history o ng figures ngayong araw lamang. Ang cashier na may PAGE_VIEW at DISPLAY_TODAY ay maaaring suriin ang mga transaksyon ng kanilang sariling shift ngunit hindi maa-access ang historical revenue data.

6. Payment Methods (4 flags)

Flag Paglalarawan
MANAGE I-access ang lugar ng pamamahala ng mga paraan ng pagbabayad
ADD Gumawa ng mga bagong payment methods (cash, card, mobile payment, atbp.)
DELETE Mag-alis ng payment methods mula sa system
UPDATE Mag-edit ng mga umiiral na payment method details

Buod

Kategorya Flags Total
Pagpapatunay CLIENT_LOGIN 1
Mga miyembro TINGNAN, ADD, DELETE, UPDATE, DISPLAY_EMAIL, DISPLAY_GSM 6
Mga Console TINGNAN, ADD, TANGGAL, I-UPDATE 4
Mga log TINGNAN, DISPLAY_FULL, DISPLAY_TODAY, DELETE 4
Mga Ulat PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY 3
Mga Paraan ng Pagbabayad MANAGE, ADD, DELETE, UPDATE 4
Total 22

Paano Gumagana ang Permissions

Ang bawat permission category ay may set ng individual na permission flags. Ang bawat flag ay maaaring i-enable o i-disable nang hiwalay gamit ang mga checkboxes sa role editor.

Nagbibigay ang UI ng mga checkboxes para sa bawat permission. Mag-check o mag-uncheck lang ng mga permissions na gusto mong ibigay o alisin. Awtomatikong hina-handle ng system ang underlying storage. Hindi mo kailangang manu-manong mag-compute ng anumang values.

Halimbawa, sa Members category, maaari mong hiwalay na i-enable o i-disable ang: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL, at DISPLAY_GSM. Ang cashier na may VIEW at UPDATE lamang na naka-check ay makakakita at makakapag-edit ng mga miyembro ngunit hindi makakapagdagdag o makakapag-delete sa kanila.


Paggawa ng Cashier Account

  1. Pumunta sa Management > Cashiers sa server application.
  2. I-click ang Add Cashier button.
  3. Ilagay ang username ng cashier. Ito ang gagamitin nila para mag-log in.
  4. Mag-set ng password. Pumili ng malakas na password. Ang account na ito ay maaaring may access sa financial data at customer information.
  5. Pumili ng role mula sa dropdown. Maaari kang pumili ng Admin, Default, o anumang custom role na ginawa mo.
  6. I-click ang Save para gawin ang account.

Maaari nang mag-log in ang bagong cashier sa HandyCafe server gamit ang kanilang credentials.


Paggawa ng Custom Role

  1. Pumunta sa Management > Cashier Roles sa server application.
  2. I-click ang Add Role button.
  3. Maglagay ng role name (hal., "Shift Supervisor", "Junior Cashier", "Night Staff").
  4. I-set ang role level. Ang mas mataas na levels ay nagsasaad ng mas maraming awtoridad. Ginagamit ito para sa display ordering at organizational hierarchy.
  5. Mag-check o mag-uncheck ng individual permissions sa lahat ng anim na kategorya. Ang bawat checkbox ay tumutugma sa isa sa 22 permission settings.
  6. I-click ang Save para gawin ang role.

Kapag nagawa na, maaari mong i-assign ang role na ito sa anumang cashier account.


Backend Enforcement

Ine-enforce ang permissions sa server side, hindi lamang itinatago sa UI. Kahit may mag-bypass ng client interface o mag-manipulate ng frontend code, bina-validate ng server ang bawat request laban sa role permissions ng cashier bago ito i-execute.

Ibig sabihin nito:

  • Ang cashier na walang MEMBER_DELETE ay hindi makakapag-delete ng member, kahit sa pamamagitan ng pag-send ng direct API request.
  • Ang cashier na walang REPORT_DISPLAY_FULL ay hindi nakakakuha ng historical report data, anuman ang paraan ng pag-access nila sa system.
  • Lahat ng permission checks ay nangyayari sa Rust backend bago isagawa ang anumang database operation.

Security: Rate Limiting

Para maprotektahan laban sa brute-force attacks, nagpapatupad ang HandyCafe ng login rate limiting:

  • 5 failed login attempts sa loob ng 10-minute window ay nagti-trigger ng automatic lockout.
  • Tumatagal ang lockout ng 15 minuto kung saan walang login attempts na tinatanggap para sa account na iyon.
  • Pagkatapos mag-expire ang lockout period, maaari nang subukan muli ng cashier.

Naaangkop ito sa parehong server login screen at cashier login sa client PCs.


Shift Management

Ang aktibidad ng bawat cashier ay ina-track nang indibidwal sa buong kanilang shift:

  • Lahat ng transactions (session payments, order payments, atbp.) ay nire-record kasama ang identity ng cashier.
  • Hiwalay na tina-track ng cash register ang opening at closing balance para sa shift ng bawat cashier.
  • Maaaring mag-generate ng shift reports kada cashier na nagpapakita nang eksakto kung magkano ang revenue na naproseso nila sa kanilang shift.
  • Kapag nag-log out ang cashier, nagsasara ang kanilang shift at available ang summary para sa review.

Tinitiyak ng per-cashier tracking na ito ang accountability at ginagawang madaling matukoy ang mga discrepancy sa dulo ng bawat shift.


Mga Halimbawa ng Permission

Scenario 1: Basic Cashier Isang bagong hire na kailangan lang mag-start/stop ng sessions at tumanggap ng payments. I-assign sila sa custom role na may CLIENT_LOGIN lamang na naka-enable. Hindi nila makikita ang mga miyembro, ulat, log, o console.

Scenario 2: Shift Supervisor Isang pinagkakatiwalaang empleyado na nag-o-oversee ng floor. I-assign sila sa role na may CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW, at REPORT_DISPLAY_TODAY. Maaari nilang i-manage ang mga session, makita (ngunit hindi i-delete) ang mga miyembro, makita ang mga console, at suriin ang kita ngayong araw ngunit hindi maa-access ang buong historical reports o baguhin ang mga paraan ng pagbabayad.

Scenario 3: Night Manager Isang manager na humahandle ng late shift nang mag-isa. Bigyan sila ng karamihan ng permissions maliban sa MEMBER_DELETE, LOG_DELETE, at PAYMENT_METHOD_DELETE. Maaari nilang i-manage ang lahat sa kanilang shift ngunit hindi maaaring permanenteng mag-alis ng kritikal na data.

Sitwasyon 4: Staff na Pinaghihigpitan sa Privacy Isang cashier na hindi dapat makakita ng contact details ng customer. Gumawa ng role na may MEMBER_VIEW na naka-enable ngunit DISPLAY_EMAIL at DISPLAY_GSM na naka-disable. Maaari nilang hanapin ang mga miyembro ayon sa pangalan ngunit nakatago ang personal na impormasyon sa pakikipag-ugnayan.