add handle security repo
This commit is contained in:
parent
44f6b7fc17
commit
3b7a73ced8
@ -6,7 +6,7 @@
|
|||||||
"package_regex_name": "^(?P<package_name>[^-]*)-(?P<version_major>\\d+)(\\.(?P<version_minor>\\d+)|\\.apk)(\\.(?P<version_release>\\d+)\\.apk|\\.apk)?$",
|
"package_regex_name": "^(?P<package_name>[^-]*)-(?P<version_major>\\d+)(\\.(?P<version_minor>\\d+)|\\.apk)(\\.(?P<version_release>\\d+)\\.apk|\\.apk)?$",
|
||||||
"security": {
|
"security": {
|
||||||
"is_public": false,
|
"is_public": false,
|
||||||
"allow_hash_key": []
|
"allow_hash_key": ["SuperApiKey"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -54,7 +54,7 @@ class PackageVersioning(FileSystemEventHandler):
|
|||||||
self.__version_directory(p['directory_path'], p['name'], p['description'], p['package_regex_name'])
|
self.__version_directory(p['directory_path'], p['name'], p['description'], p['package_regex_name'])
|
||||||
|
|
||||||
def __version_directory(self, directory_path, repo_name, repo_description, regex_package_name):
|
def __version_directory(self, directory_path, repo_name, repo_description, regex_package_name):
|
||||||
repo_public = {"repo_description": repo_description, }
|
repo_public = {"repo_description": repo_description}
|
||||||
repo_private = {
|
repo_private = {
|
||||||
"directory_path": os.path.abspath(directory_path),
|
"directory_path": os.path.abspath(directory_path),
|
||||||
"package_finder": PackageFinder(regex_package_name)
|
"package_finder": PackageFinder(regex_package_name)
|
||||||
@ -114,8 +114,6 @@ class PackageVersioning(FileSystemEventHandler):
|
|||||||
self.__repos_private[repo_name] = repo_private
|
self.__repos_private[repo_name] = repo_private
|
||||||
|
|
||||||
def get_all_packages(self, package_name=None, repo_name=None):
|
def get_all_packages(self, package_name=None, repo_name=None):
|
||||||
if repo_name is None:
|
|
||||||
return self.__repos_public
|
|
||||||
repo_name, repo_public, _ = self.__get_repo(repo_name)
|
repo_name, repo_public, _ = self.__get_repo(repo_name)
|
||||||
try:
|
try:
|
||||||
return repo_public[package_name] if \
|
return repo_public[package_name] if \
|
||||||
@ -145,9 +143,17 @@ class PackageVersioning(FileSystemEventHandler):
|
|||||||
raise InvalidPackageName
|
raise InvalidPackageName
|
||||||
return os.path.join(repo_private['directory_path'], filename)
|
return os.path.join(repo_private['directory_path'], filename)
|
||||||
|
|
||||||
def __get_repo(self, repo_name):
|
def __get_repo(self, repo_name, api_key="SuperApiKey"):
|
||||||
try:
|
try:
|
||||||
return repo_name, self.__repos_public[repo_name], self.__repos_private[repo_name]
|
r_pub = {}
|
||||||
|
r_pri = {}
|
||||||
|
|
||||||
|
for repo in self.__repos_json_conf:
|
||||||
|
if repo_name is None or repo['name'] == repo_name:
|
||||||
|
if repo['security']['is_public'] or api_key in repo['security']['allow_hash_key']:
|
||||||
|
r_pub[repo['name']] = self.__repos_public[repo['name']]
|
||||||
|
r_pri[repo['name']] = self.__repos_private[repo['name']]
|
||||||
|
return repo_name, r_pub, r_pri
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise RepoDoNotExist
|
raise RepoDoNotExist
|
||||||
|
|
||||||
@ -206,3 +212,6 @@ class RepoDoNotExist(Exception):
|
|||||||
|
|
||||||
class PackageDoNotExist(Exception):
|
class PackageDoNotExist(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class AccessRepoNotAllowed(Exception):
|
||||||
|
pass
|
||||||
|
Reference in New Issue
Block a user