Esempio n. 1
0
 def get(self):
     login_username = get_request_authorization_username()
     args = parser_get.parse_args()
     username = args.get("username")
     if username != login_username:
         abort(400, "Unauthorized. Cannot delete authorizations of other users")
     application = args.get("application")
     auths = self._get_auth(username=username, application=application)
     res = [self._jsonify_auth(a) for a in auths]
     return (res, 200) if len(res) > 0 else (res, 204)
Esempio n. 2
0
 def __init__(self, hostname, port):
     self.url = 'http://{}:{:d}/transmission/rpc'.format(hostname, port)
     username = get_request_authorization_username()
     if username is None:
         abort(500, 'Could not get authorization header username field')
     # user = User.query.filter(username == username).filter()
     authorization = Authorization.query.join(User).join(Service).join(Application)\
         .filter(Application.name == 'transmission') \
         .filter(User.username == username)[0]
     self._auth_header = 'Basic {}'.format(base64.encodebytes('{}:{}'.format(username, authorization.user.password).encode())
                                           .decode()[:-1])
     self._session_id = self._get_session_id()
Esempio n. 3
0
 def delete(self):
     login_username = get_request_authorization_username()
     args = parser_delete.parse_args()
     username = args.get("username")
     if username != login_username:
         abort(400, "Unauthorized. Cannot delete authorizations of other users")
     application = args.get("application")
     auths = self._get_auth(username=username, application=application)
     if auths.count() == 0:
         abort(400, "No authorization record found for user <{}> and application <{}>".format(username, application))
     [db.session.delete(a) for a in auths]
     db.session.commit()
     return None, 200
Esempio n. 4
0
 def get(self):
     username = get_request_authorization_username()
     authorization = Authorization.query.join(Service).join(Application).join(User) \
         .filter(User.username == username) \
         .filter(Application.name == 'transmission')
     if authorization.count() == 0:
         abort(400, 'User <{0}> is not authorized. Please PUT an authorization '
                    'for application <transmission>'.format(username))
     authorization = authorization[0]
     hostname = authorization.service.hostname
     port = authorization.service.port
     if self.transmission is None:
         try:
             self.transmission = TransmissionRPC(hostname, port)
         except TransmissionException as exc:
             api.abort(500, message=exc.message)
     return self.transmission.get_torrents_info(None)