|
16 | 16 | from Debug import Debug |
17 | 17 | from Translate import Translate |
18 | 18 | from util import helper |
| 19 | +from util.Flag import flag |
19 | 20 | from .ZipStream import ZipStream |
20 | 21 |
|
21 | 22 | plugin_dir = os.path.dirname(__file__) |
@@ -85,10 +86,6 @@ def streamZip(self, dir_path): |
85 | 86 |
|
86 | 87 | @PluginManager.registerTo("UiWebsocket") |
87 | 88 | class UiWebsocketPlugin(object): |
88 | | - def __init__(self, *args, **kwargs): |
89 | | - self.async_commands.add("sidebarGetPeers") |
90 | | - return super(UiWebsocketPlugin, self).__init__(*args, **kwargs) |
91 | | - |
92 | 89 | def sidebarRenderPeerStats(self, body, site): |
93 | 90 | connected = len([peer for peer in list(site.peers.values()) if peer.connection and peer.connection.connected]) |
94 | 91 | connectable = len([peer_id for peer_id in list(site.peers.keys()) if not peer_id.endswith(":0")]) |
@@ -511,11 +508,8 @@ def sidebarRenderContents(self, body, site): |
511 | 508 | body.append("</div>") |
512 | 509 | body.append("</li>") |
513 | 510 |
|
| 511 | + @flag.admin |
514 | 512 | def actionSidebarGetHtmlTag(self, to): |
515 | | - permissions = self.getPermissions(to) |
516 | | - if "ADMIN" not in permissions: |
517 | | - return self.response(to, "You don't have permission to run this command") |
518 | | - |
519 | 513 | site = self.site |
520 | 514 |
|
521 | 515 | body = [] |
@@ -706,11 +700,9 @@ def getPeerLocations(self, peers): |
706 | 700 |
|
707 | 701 | return peer_locations |
708 | 702 |
|
709 | | - |
| 703 | + @flag.admin |
| 704 | + @flag.async_run |
710 | 705 | def actionSidebarGetPeers(self, to): |
711 | | - permissions = self.getPermissions(to) |
712 | | - if "ADMIN" not in permissions: |
713 | | - return self.response(to, "You don't have permission to run this command") |
714 | 706 | try: |
715 | 707 | peer_locations = self.getPeerLocations(self.site.peers) |
716 | 708 | globe_data = [] |
@@ -739,53 +731,43 @@ def actionSidebarGetPeers(self, to): |
739 | 731 | self.log.debug("sidebarGetPeers error: %s" % Debug.formatException(err)) |
740 | 732 | self.response(to, {"error": str(err)}) |
741 | 733 |
|
| 734 | + @flag.admin |
| 735 | + @flag.no_multiuser |
742 | 736 | def actionSiteSetOwned(self, to, owned): |
743 | | - permissions = self.getPermissions(to) |
744 | | - if "ADMIN" not in permissions: |
745 | | - return self.response(to, "You don't have permission to run this command") |
746 | | - |
747 | 737 | if self.site.address == config.updatesite: |
748 | 738 | return self.response(to, "You can't change the ownership of the updater site") |
749 | 739 |
|
750 | 740 | self.site.settings["own"] = bool(owned) |
751 | 741 | self.site.updateWebsocket(owned=owned) |
752 | 742 |
|
| 743 | + @flag.admin |
| 744 | + @flag.no_multiuser |
753 | 745 | def actionUserSetSitePrivatekey(self, to, privatekey): |
754 | | - permissions = self.getPermissions(to) |
755 | | - if "ADMIN" not in permissions: |
756 | | - return self.response(to, "You don't have permission to run this command") |
757 | | - |
758 | 746 | site_data = self.user.sites[self.site.address] |
759 | 747 | site_data["privatekey"] = privatekey |
760 | 748 | self.site.updateWebsocket(set_privatekey=bool(privatekey)) |
761 | 749 |
|
762 | 750 | return "ok" |
763 | 751 |
|
| 752 | + @flag.admin |
| 753 | + @flag.no_multiuser |
764 | 754 | def actionSiteSetAutodownloadoptional(self, to, owned): |
765 | | - permissions = self.getPermissions(to) |
766 | | - if "ADMIN" not in permissions: |
767 | | - return self.response(to, "You don't have permission to run this command") |
768 | | - |
769 | 755 | self.site.settings["autodownloadoptional"] = bool(owned) |
770 | 756 | self.site.bad_files = {} |
771 | 757 | gevent.spawn(self.site.update, check_files=True) |
772 | 758 | self.site.worker_manager.removeSolvedFileTasks() |
773 | 759 |
|
| 760 | + @flag.no_multiuser |
| 761 | + @flag.admin |
774 | 762 | def actionDbReload(self, to): |
775 | | - permissions = self.getPermissions(to) |
776 | | - if "ADMIN" not in permissions: |
777 | | - return self.response(to, "You don't have permission to run this command") |
778 | | - |
779 | 763 | self.site.storage.closeDb() |
780 | 764 | self.site.storage.getDb() |
781 | 765 |
|
782 | 766 | return self.response(to, "ok") |
783 | 767 |
|
| 768 | + @flag.no_multiuser |
| 769 | + @flag.admin |
784 | 770 | def actionDbRebuild(self, to): |
785 | | - permissions = self.getPermissions(to) |
786 | | - if "ADMIN" not in permissions: |
787 | | - return self.response(to, "You don't have permission to run this command") |
788 | | - |
789 | 771 | try: |
790 | 772 | self.site.storage.rebuildDb() |
791 | 773 | except Exception as err: |
|
0 commit comments