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
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))
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
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
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]
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])
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
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
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
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))
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)
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)
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)
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)