mirror of
https://github.com/Ysurac/openmptcprouter-vps-admin.git
synced 2025-03-09 15:40:05 +00:00
Fix OpenVPN support
This commit is contained in:
parent
6c8973daf1
commit
969081da4e
2 changed files with 14 additions and 5 deletions
6
debian/changelog
vendored
6
debian/changelog
vendored
|
@ -1,3 +1,9 @@
|
||||||
|
omr-vps-admin (0.6+20231102) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Fix OpenVPN support
|
||||||
|
|
||||||
|
-- OpenMPTCProuter <contact@openmptcprouter.com> Fri, 01 Nov 2023 11:29:47 +0200
|
||||||
|
|
||||||
omr-vps-admin (0.5+20231021) unstable; urgency=medium
|
omr-vps-admin (0.5+20231021) unstable; urgency=medium
|
||||||
|
|
||||||
* Remove pip from postinst
|
* Remove pip from postinst
|
||||||
|
|
13
omr-admin.py
13
omr-admin.py
|
@ -2699,9 +2699,9 @@ def openvpn(*, params: OpenVPN, current_user: User = Depends(get_current_user)):
|
||||||
if current_user.permissions == "ro":
|
if current_user.permissions == "ro":
|
||||||
set_lastchange(10)
|
set_lastchange(10)
|
||||||
return {'result': 'permission', 'reason': 'Read only user', 'route': 'openvpn'}
|
return {'result': 'permission', 'reason': 'Read only user', 'route': 'openvpn'}
|
||||||
initial_md5 = hashlib.md5(file_as_bytes(open('/etc/openvpn/tun0', 'rb'))).hexdigest()
|
initial_md5 = hashlib.md5(file_as_bytes(open('/etc/openvpn/tun0.conf', 'rb'))).hexdigest()
|
||||||
fd, tmpfile = mkstemp()
|
fd, tmpfile = mkstemp()
|
||||||
with open('/etc/openvpn/tun0', 'r') as f, open(tmpfile, 'a+') as n:
|
with open('/etc/openvpn/tun0.conf', 'r') as f, open(tmpfile, 'a+') as n:
|
||||||
for line in f:
|
for line in f:
|
||||||
if 'cipher ' in line:
|
if 'cipher ' in line:
|
||||||
n.write('cipher ' + params.cipher + '\n')
|
n.write('cipher ' + params.cipher + '\n')
|
||||||
|
@ -2710,12 +2710,12 @@ def openvpn(*, params: OpenVPN, current_user: User = Depends(get_current_user)):
|
||||||
else:
|
else:
|
||||||
n.write(line)
|
n.write(line)
|
||||||
os.close(fd)
|
os.close(fd)
|
||||||
move(tmpfile, '/etc/openvpn/tun0')
|
move(tmpfile, '/etc/openvpn/tun0.conf')
|
||||||
final_md5 = hashlib.md5(file_as_bytes(open('/etc/openvpn/tun0', 'rb'))).hexdigest()
|
final_md5 = hashlib.md5(file_as_bytes(open('/etc/openvpn/tun0.conf', 'rb'))).hexdigest()
|
||||||
|
|
||||||
if initial_md5 != final_md5:
|
if initial_md5 != final_md5:
|
||||||
os.system("systemctl -q restart openvpn@tun0")
|
os.system("systemctl -q restart openvpn@tun0")
|
||||||
shorewall_add_port(current_user, str(port), 'tcp', 'openvpn')
|
shorewall_add_port(current_user, str(params.port), 'tcp', 'openvpn')
|
||||||
set_lastchange()
|
set_lastchange()
|
||||||
return {'result': 'done'}
|
return {'result': 'done'}
|
||||||
|
|
||||||
|
@ -2980,6 +2980,7 @@ class NewUser(BaseModel):
|
||||||
username: str = Query(..., title="Username")
|
username: str = Query(..., title="Username")
|
||||||
permission: permissions = Query("ro", title="permission of the user")
|
permission: permissions = Query("ro", title="permission of the user")
|
||||||
vpn: VPN = Query("openvpn", title="default VPN for the user")
|
vpn: VPN = Query("openvpn", title="default VPN for the user")
|
||||||
|
proxy: PROXY = Query("shadowsocks-rust", title="default Proxy for the user")
|
||||||
shadowsocks_port: Optional[int] = Query(None, gt=0, lt=65535, title="Shadowsocks port")
|
shadowsocks_port: Optional[int] = Query(None, gt=0, lt=65535, title="Shadowsocks port")
|
||||||
userid: Optional[int] = Query(None, title="User ID")
|
userid: Optional[int] = Query(None, title="User ID")
|
||||||
ips: Optional[List[str]] = Query(None, title="Public exit IP")
|
ips: Optional[List[str]] = Query(None, title="Public exit IP")
|
||||||
|
@ -3032,6 +3033,8 @@ def add_user(*, params: NewUser, current_user: User = Depends(get_current_user))
|
||||||
user_json[params.username].update({"shadowsocks_port": shadowsocks_port})
|
user_json[params.username].update({"shadowsocks_port": shadowsocks_port})
|
||||||
if params.vpn is not None:
|
if params.vpn is not None:
|
||||||
user_json[params.username].update({"vpn": params.vpn})
|
user_json[params.username].update({"vpn": params.vpn})
|
||||||
|
if params.proxy is not None:
|
||||||
|
user_json[params.username].update({"proxy": params.proxy})
|
||||||
content['users'][0].update(user_json)
|
content['users'][0].update(user_json)
|
||||||
if content:
|
if content:
|
||||||
backup_config()
|
backup_config()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue