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)
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()
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
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)