source: syncer/trunk/fuentes/syncer.install/usr/lib/syncer/plugins/users.py @ 4039

Last change on this file since 4039 was 4039, checked in by mabarracus, 3 years ago

First release

File size: 1.1 KB
Line 
1from lib.SyncerTypes import *
2import pwd,grp
3
4class handler_users(IPlugin):
5    def init_plugin(self):
6        self.typeplug = 'users'
7        self.params = ['action','options']
8
9    def get_current_user(self):
10        user_id = os.getuid()
11        user_name = pwd.getpwuid(user_id)[0]
12        return user_name
13
14    def get_current_groups(self,user_name=None):
15        if (user_name == None):
16            user_name=self.get_current_user()
17        grupos = [group[0] for group in grp.getgrall() if user_name in group[3]]
18        return grupos
19
20    def process(self,*args,**kwargs):
21        params = kwargs['params']
22        if (params['action']) == 'get_user':
23            user_name=self.get_current_user()
24            groups=self.get_current_groups(user_name)
25            return True,[user_name,groups]
26        if (params['action']) == 'assert_grp':
27            grouplist=params['options']
28            groups_to_apply=grouplist.split(',')
29            current_grps=self.get_current_groups()
30            for g in groups_to_apply:
31                if g in current_grps:
32                    return True, 'User is in group ' + g
33
34            return False,'Not in group'
35
36
37
Note: See TracBrowser for help on using the repository browser.