File: example_approval_plugin.py

package info (click to toggle)
sudo 1.9.13p3-1%2Bdeb12u2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-proposed-updates
  • size: 24,736 kB
  • sloc: ansic: 109,475; sh: 13,036; makefile: 9,460; yacc: 2,548; lex: 1,454; python: 362; perl: 341; sed: 229
file content (18 lines) | stat: -rw-r--r-- 557 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sudo

from datetime import datetime


class BusinessHoursApprovalPlugin(sudo.Plugin):
    def check(self, command_info: tuple, run_argv: tuple,
              run_env: tuple) -> int:
        error_msg = ""
        now = datetime.now()
        if now.weekday() >= 5:
            error_msg = "That is not allowed on the weekend!"
        if now.hour < 8 or now.hour > 17:
            error_msg = "That is not allowed outside the business hours!"

        if error_msg:
            sudo.log_info(error_msg)
            raise sudo.PluginReject(error_msg)