Changeset 350d4d7


Ignore:
Timestamp:
09/04/2010 07:31:27 PM (15 years ago)
Author:
Andrew Resch <andrewresch@gmail.com>
Branches:
2.0.x, develop, extjs4-port, master
Children:
915db8
Parents:
4b92912
Message:

Add rpc to check if authorized to call a rpc: daemon.authorized_call()

Location:
deluge/core
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • deluge/core/daemon.py

    r4b92912 r350d4d7  
    205205        """
    206206        return self.rpcserver.get_method_list()
     207
     208    @export(1)
     209    def authorized_call(self, rpc):
     210        """
     211        Returns True if authorized to call rpc.
     212
     213        :param rpc: a rpc, eg, "core.get_torrents_status"
     214        :type rpc: string
     215
     216        """
     217        if not rpc in self.get_method_list():
     218            return False
     219
     220        auth_level = self.rpcserver.get_session_auth_level()
     221        return auth_level >= self.rpcserver.get_rpc_auth_level()
  • deluge/core/rpcserver.py

    r4b92912 r350d4d7  
    444444            return ""
    445445
     446    def get_session_auth_level(self):
     447        """
     448        Returns the auth level of the user calling the current RPC.
     449
     450        :returns: the auth level
     451        :rtype: int
     452        """
     453        return self.factory.authorized_sessions[self.get_session_id()][0]
     454
     455    def get_rpc_auth_level(self, rpc):
     456        """
     457        Returns the auth level requirement for an exported rpc.
     458
     459        :returns: the auth level
     460        :rtype: int
     461        """
     462        self.factory.methods[rpc]._rpcserver_auth_level
     463
    446464    def is_session_valid(self, session_id):
    447465        """
Note: See TracChangeset for help on using the changeset viewer.