Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

# Authors: 

#   Jr Aquino <jr.aquino@citrixonline.com> 

# 

# Copyright (C) 2010  Red Hat 

# see file 'COPYING' for use and warranty information 

# 

# This program is free software; you can redistribute it and/or modify 

# it under the terms of the GNU General Public License as published by 

# the Free Software Foundation, either version 3 of the License, or 

# (at your option) any later version. 

# 

# This program is distributed in the hope that it will be useful, 

# but WITHOUT ANY WARRANTY; without even the implied warranty of 

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 

# GNU General Public License for more details. 

# 

# You should have received a copy of the GNU General Public License 

# along with this program.  If not, see <http://www.gnu.org/licenses/>. 

 

from ipalib import api 

from ipalib import Str 

from ipalib.plugins.baseldap import * 

from ipalib import _, ngettext 

 

__doc__ = _(""" 

Groups of Sudo Commands 

 

Manage groups of Sudo Commands. 

 

EXAMPLES: 

 

Add a new Sudo Command Group: 

   ipa sudocmdgroup-add --desc='administrators commands' admincmds 

 

Remove a Sudo Command Group: 

   ipa sudocmdgroup-del admincmds 

 

Manage Sudo Command Group membership, commands: 

   ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/vim admincmds 

 

Manage Sudo Command Group membership, commands: 

   ipa group-remove-member --sudocmds=/usr/bin/less admincmds 

 

Show a Sudo Command Group: 

   ipa group-show localadmins 

""") 

 

topic = ('sudo', _('commands for controlling sudo configuration')) 

 

class sudocmdgroup(LDAPObject): 

    """ 

    Sudo Command Group object. 

    """ 

    container_dn = api.env.container_sudocmdgroup 

    object_name = _('sudo command group') 

    object_name_plural = _('sudo command groups') 

    object_class = ['ipaobject', 'ipasudocmdgrp'] 

    default_attributes = [ 

        'cn', 'description', 'member', 

    ] 

    uuid_attribute = 'ipauniqueid' 

    attribute_members = { 

        'member': ['sudocmd'], 

    } 

 

    label = _('Sudo Command Groups') 

    label_singular = _('Sudo Command Group') 

 

    takes_params = ( 

        Str('cn', 

            cli_name='sudocmdgroup_name', 

            label=_('Sudo Command Group'), 

            primary_key=True, 

            normalizer=lambda value: value.lower(), 

        ), 

        Str('description', 

            cli_name='desc', 

            label=_('Description'), 

            doc=_('Group description'), 

        ), 

        Str('membercmd_sudocmd?', 

            label=_('Commands'), 

            flags=['no_create', 'no_update', 'no_search'], 

        ), 

        Str('membercmd_sudocmdgroup?', 

            label=_('Sudo Command Groups'), 

            flags=['no_create', 'no_update', 'no_search'], 

        ), 

    ) 

 

api.register(sudocmdgroup) 

 

 

class sudocmdgroup_add(LDAPCreate): 

    __doc__ = _('Create new Sudo Command Group.') 

 

    msg_summary = _('Added Sudo Command Group "%(value)s"') 

 

api.register(sudocmdgroup_add) 

 

 

class sudocmdgroup_del(LDAPDelete): 

    __doc__ = _('Delete Sudo Command Group.') 

 

    msg_summary = _('Deleted Sudo Command Group "%(value)s"') 

 

api.register(sudocmdgroup_del) 

 

 

class sudocmdgroup_mod(LDAPUpdate): 

    __doc__ = _('Modify Sudo Command Group.') 

 

    msg_summary = _('Modified Sudo Command Group "%(value)s"') 

 

api.register(sudocmdgroup_mod) 

 

 

class sudocmdgroup_find(LDAPSearch): 

    __doc__ = _('Search for Sudo Command Groups.') 

 

    msg_summary = ngettext( 

        '%(count)d Sudo Command Group matched', 

        '%(count)d Sudo Command Groups matched', 0 

    ) 

 

api.register(sudocmdgroup_find) 

 

 

class sudocmdgroup_show(LDAPRetrieve): 

    __doc__ = _('Display Sudo Command Group.') 

 

api.register(sudocmdgroup_show) 

 

 

class sudocmdgroup_add_member(LDAPAddMember): 

    __doc__ = _('Add members to Sudo Command Group.') 

 

api.register(sudocmdgroup_add_member) 

 

 

class sudocmdgroup_remove_member(LDAPRemoveMember): 

    __doc__ = _('Remove members from Sudo Command Group.') 

 

api.register(sudocmdgroup_remove_member)