示例#1
0
 def get_group_priv(self,name):
     if name  in self.group_dict.keys():
         svn_logger.info("Group(%s) get priv " % name )
         return self.group_dict[name]
     else:
         svn_logger.warn("Group %s not exist" % name)
         return None
示例#2
0
 def del_privilege(self, dir):
     svn_logger.debug("Group(%s) del priv (%s) " % (self.name, dir))
     if dir in self.privilege:
         del self.privilege[dir]
     else:
         svn_logger.warn("Group(%s) do not have privilege dir(%s)" %
                         (self.name, dir))
示例#3
0
 def group_del_priv(self,name,dir):
     if name  in self.group_dict.keys():
         svn_logger.info("Group(%s) del  priv  on dir (%s) " % (name,dir))
         self.group_dict[name].del_privilege(dir)
     else:
         svn_logger.warn("Group %s not exist,can not del priv" % name)
         return False
示例#4
0
 def group_add_priv(self,name,dir,mode="rw"):
     if name  in self.group_dict.keys():
         svn_logger.info("Group(%s) add mode(%s) priv  on dir (%s) " % (name,mode,dir))
         self.group_dict[name].add_privilege(dir,mode)
     else:
         svn_logger.warn("Group %s not exist,can not add priv" % name)
         return False
示例#5
0
 def id_del(self,name):
     svn_logger.info("Id(%s) deleted in idlist of svnauth" % name)
     if  name not in  self.id_dict.keys():
         svn_logger.warn("Id %s is not exist,can not be deleted " % name )
         return
     for group_name in self.group_dict.keys():
         self.group_dict[group_name].del_id(self.id_dict[name])
     del self.id_dict[name]
示例#6
0
 def group_del_id(self,group_name,id_name):
     if group_name not  in self.group_dict.keys():
         svn_logger.warn("Group (%s) not exist" % group_name)
         return
     if id_name not  in self.id_dict.keys():
         svn_logger.warn("Id (%s) not exist" % id_name)
         return
     svn_logger.info("Group(%s) del Id(%s)" % (group_name,id_name))
     self.group_dict[group_name].del_id(self.id_dict[id_name])
示例#7
0
 def get_id_priv(self,name):
     priv_dict={}
     if name  in sorted(self.id_dict.keys()):
         svn_logger.info("Id(%s) get priv " % name )
         priv_dict = self.id_dict[name].get_privilege()
         for group in self.group_dict.values():
             if group.has_id(self.id_dict[name]):
                 svn_logger.debug("group(%s) contain priv  for id(%s)" %( group.name, name) )
                 priv_dict.update(group.privilege)
         return priv_dict
     else:
         svn_logger.warn("Id %s not exist" % name)
         return None
示例#8
0
    def permit_request(self, request):
        """
        参数
            请求  类型字典
            TYPE
            OP
            NAME
            DIR
            MODE
        """
        mtype = request["type"]
        group_name = request["group_name"]
        id_name = request["id_name"]
        op = request["op"]
        dir = request["dir"]
        mode = request["mode"]
        passwd = request["passwd"]

        if cmp(mtype, "group") == 0:
            if cmp(op, "add") == 0:
                self.group_add_priv(group_name, dir, mode)
            elif cmp(op, "del") == 0:
                self.group_del_priv(group_name, dir)
            elif cmp(op, "add_id") == 0:
                self.group_add_id(group_name, id_name)
            elif cmp(op, "del_id") == 0:
                self.group_del_id(group_name, id_name)
            elif cmp(op, "create") == 0:
                self.group_create(group_name)
            elif cmp(op, "destroy") == 0:
                self.group_destroy(group_name)
            else:
                svn_logger.warn("op(%s) 不存在" % op)
                pass
        elif cmp(mtype, "id") == 0:
            if cmp(op, "add") == 0:
                self.id_add_priv(id_name, dir, mode)
            elif cmp(op, "del") == 0:
                self.id_del_priv(id_name, dir)
            elif cmp(op, "create") == 0:
                self.id_add(id_name)
            elif cmp(op, "destroy") == 0:
                self.id_del(id_name)
            elif cmp(op, "change") == 0:
                self.id_set_pass(id_name, passwd)
            else:
                svn_logger.warn("op(%s) 不存在" % op)
                pass
        else:
            svn_logger.warn("type(%s) 不存在" % type)
            pass
示例#9
0
    def permit_request(self, request):
        """
        参数
            请求  类型字典
            TYPE
            OP
            NAME
            DIR
            MODE
        """
        mtype = request["type"]
        group_name = request['group_name']
        id_name = request['id_name']
        op = request['op']
        dir = request['dir']
        mode = request['mode']
        passwd = request['passwd']

        if cmp(mtype, 'group') == 0:
            if cmp(op, 'add') == 0:
                self.group_add_priv(group_name, dir, mode)
            elif cmp(op, 'del') == 0:
                self.group_del_priv(group_name, dir)
            elif cmp(op, 'add_id') == 0:
                self.group_add_id(group_name, id_name)
            elif cmp(op, 'del_id') == 0:
                self.group_del_id(group_name, id_name)
            elif cmp(op, 'create') == 0:
                self.group_create(group_name)
            elif cmp(op, 'destroy') == 0:
                self.group_destroy(group_name)
            else:
                svn_logger.warn("op(%s) 不存在" % op)
                pass
        elif cmp(mtype, 'id') == 0:
            if cmp(op, 'add') == 0:
                self.id_add_priv(id_name, dir, mode)
            elif cmp(op, 'del') == 0:
                self.id_del_priv(id_name, dir)
            elif cmp(op, 'create') == 0:
                self.id_add(id_name)
            elif cmp(op, 'destroy') == 0:
                self.id_del(id_name)
            elif cmp(op, 'change') == 0:
                self.id_set_pass(id_name, passwd)
            else:
                svn_logger.warn("op(%s) 不存在" % op)
                pass
        else:
            svn_logger.warn("type(%s) 不存在" % type)
            pass
示例#10
0
 def del_privilege(self,dir):
     svn_logger.debug("Group(%s) del priv (%s) " % (self.name,dir))
     if dir in self.privilege :
         del self.privilege[dir]
     else:
         svn_logger.warn("Group(%s) do not have privilege dir(%s)" % (self.name,dir))
示例#11
0
 def id_set_pass(self,name,passwd):
     if  name not in  self.id_dict.keys():
         svn_logger.warn("Id %s is not exist,can not be changed password " % name )
         return
     svn_logger.info("Id(%s) will be changed password" % passwd)
     self.id_dict[name].set_pass(passwd)
示例#12
0
 def id_add_priv(self,name,dir,mode="rw"):
     if name in self.id_dict.keys():
         svn_logger.info("Id(%s) add priv(%s) mode(%s)" % (name,dir,mode))
         self.id_dict[name].add_privilege(dir,mode)
     else:
         svn_logger.warn("ID %s not exist,can not add priv" % name)
示例#13
0
 def id_add(self,name,passwd):
     if  name not in  self.id_dict.keys():
         svn_logger.info("Id(%s) add in  idlist of svnauth " % (name))
         self.id_dict[name] =SvnId(name,passwd)
     else:
         svn_logger.warn("Id %s have been exist " % name)
示例#14
0
 def group_create(self,name):
     if name not in self.group_dict.keys():
         self.group_dict[name] = SvnGroup(name)
         svn_logger.info("create group(%s)",name)
     else:
         svn_logger.warn("Group %s  exist , don't create again" % name)