コード例 #1
0
ファイル: handler.py プロジェクト: samuelbaizg/ssguan
    def POST(self):
        rtn = None
        try:
            if session.has_token() is False:
                anonymous_user = user.login(user.ANONYMOUS_ACCOUNT_NAME, None)
                session.set_token(anonymous_user)

            operation = user.get_operation(handler_class=self.get_qualified_name())
            if operation is not None:
                paramnames = operation.get_resource_oql_paramnames()
                oqlparams = self._get_resource_oql_params(paramnames)
                if user.has_permission(self._get_user_id(), operation.operation_key, oqlparams=oqlparams):
                    rtn = self.execute()
                else:
                    if session.get_token().is_anonymous():
                        raise SessionExpiredError(session.get_token())
                    else:
                        raise UnauthorizedError()
            else:
                raise CoreError("%s is not related to operation.", self.get_qualified_name())

        except BaseException, e:
            msg = str(e)
            msg += traceback.format_exc()
            log.get_logger().error(msg)
            rtn = self._new_rtn(e=e).to_json()