当前位置: 首页>>代码示例>>Python>>正文


Python User.is_dj方法代码示例

本文整理汇总了Python中rainwave.user.User.is_dj方法的典型用法代码示例。如果您正苦于以下问题:Python User.is_dj方法的具体用法?Python User.is_dj怎么用?Python User.is_dj使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在rainwave.user.User的用法示例。


在下文中一共展示了User.is_dj方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: RainwaveHandler

# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import is_dj [as 别名]

#.........这里部分代码省略.........
				self.cleaned_args[field] = None
			else:
				parsed = type_cast(self.get_argument(field), self)
				if parsed == None and required != None:
					raise APIException("invalid_argument", argument=field, reason="%s %s" % (field, getattr(fieldtypes, "%s_error" % type_cast.__name__)), http_code=400)
				else:
					self.cleaned_args[field] = parsed

		if not self.sid and not self.sid_required:
			self.sid = 5
		if not self.sid in config.station_ids:
			raise APIException("invalid_station_id", http_code=400)
		self.set_cookie("r4_sid", str(self.sid), expires_days=365, domain=config.get("cookie_domain"))

		if self.phpbb_auth:
			self.do_phpbb_auth()
		else:
			self.rainwave_auth()

		if not self.user and self.auth_required:
			raise APIException("auth_required", http_code=403)
		elif not self.user and not self.auth_required:
			self.user = User(1)
			self.user.ip_address = self.request.remote_ip
		
		self.user.refresh(self.sid)

		if self.login_required and (not self.user or self.user.is_anonymous()):
			raise APIException("login_required", http_code=403)
		if self.tunein_required and (not self.user or not self.user.is_tunedin()):
			raise APIException("tunein_required", http_code=403)
		if self.admin_required and (not self.user or not self.user.is_admin()):
			raise APIException("admin_required", http_code=403)
		if self.dj_required and (not self.user or not self.user.is_dj()):
			raise APIException("dj_required", http_code=403)
		if self.perks_required and (not self.user or not self.user.has_perks()):
			raise APIException("perks_required", http_code=403)

		if self.unlocked_listener_only and not self.user:
			raise APIException("auth_required", http_code=403)
		elif self.unlocked_listener_only and self.user.data['lock'] and self.user.data['lock_sid'] != self.sid:
			raise APIException("unlocked_only", station=config.station_id_friendly[self.user.data['lock_sid']], lock_counter=self.user.data['lock_counter'], http_code=403)

	def do_phpbb_auth(self):
		phpbb_cookie_name = config.get("phpbb_cookie_name")
		user_id = fieldtypes.integer(self.get_cookie(phpbb_cookie_name + "u", ""))
		if not user_id:
			pass
		else:
			if self._verify_phpbb_session(user_id):
				# update_phpbb_session is done by verify_phpbb_session if successful
				self.user = User(user_id)
				self.user.authorize(self.sid, None, None, True)
				return True

			if not self.user and self.get_cookie(phpbb_cookie_name + "k"):
				can_login = db.c.fetch_var("SELECT 1 FROM phpbb_sessions_keys WHERE key_id = %s AND user_id = %s", (hashlib.md5(self.get_cookie(phpbb_cookie_name + "k")).hexdigest(), user_id))
				if can_login == 1:
					self._update_phpbb_session(self._get_phpbb_session(user_id))
					self.user = User(user_id)
					self.user.authorize(self.sid, None, None, True)
					return True
		return False

	def _verify_phpbb_session(self, user_id = None):
		# TODO: Do we want to enhance this with IP checking and other bits and pieces like phpBB does?
开发者ID:DarkLink1108,项目名称:rainwave,代码行数:70,代码来源:web.py

示例2: MainIndex

# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import is_dj [as 别名]
class MainIndex(api.web.HTMLRequest):
	description = "Main Rainwave page."
	auth_required = config.has("index_requires_login") and config.get("index_requires_login")
	login_required = config.has("index_requires_login") and config.get("index_requires_login")
	sid_required = False
	beta = False
	page_template = "r5_index.html"
	js_dir = "js5"

	def set_default_headers(self):
		self.set_header("X-Frame-Options", "SAMEORIGIN")
		self.set_header("X-XSS-Protection", "1; mode=block")
		self.set_header("X-Content-Type-Options", "nosniff")

		if self.request.protocol == 'https':
			self.set_header("Content-Security-Policy", config.csp_header)
			self.set_header("Referrer-Policy", "origin")
			self.set_header("Strict-Transport-Security", "max-age=63072000; includeSubDomains; preload")

	def prepare(self):
		if self.path_kwargs.get('station'):
			self.sid = config.stream_filename_to_sid.get(self.path_kwargs['station'])
			if not self.sid:
				self.redirect(config.get("base_site_url"))
				return

		super(MainIndex, self).prepare()

		if self.path_kwargs.get('station') is None:
			self.redirect("{}{}/".format(config.get("base_site_url"), config.station_mount_filenames[self.sid]), permanent=True)
			return

		if config.get("enforce_ssl") and self.request.protocol != "https":
			self.redirect("{}{}/".format(config.get("base_site_url"), config.station_mount_filenames[self.sid]), permanent=True)
			return

		if not config.get("developer_mode") and self.request.host != config.get("hostname"):
			self.redirect("{}{}/".format(config.get("base_site_url"), config.station_mount_filenames[self.sid]), permanent=True)
			return

		if not cache.get_station(self.sid, "sched_current"):
			raise APIException("server_just_started", "Rainwave is Rebooting, Please Try Again in a Few Minutes", http_code=500)

		# self.json_payload = {}
		self.jsfiles = None

		if not self.user:
			self.user = User(1)
		self.user.ip_address = self.request.remote_ip
		self.user.ensure_api_key()

		if self.beta or config.get("web_developer_mode") or config.get("developer_mode") or config.get("test_mode"):
			buildtools.bake_beta_css()
			buildtools.bake_beta_templates()
			self.jsfiles = []
			for root, subdirs, files in os.walk(os.path.join(os.path.dirname(__file__), "../static/%s" % self.js_dir)):	#pylint: disable=W0612
				for f in files:
					if f.endswith(".js"):
						self.jsfiles.append(os.path.join(root[root.find("static/%s" % self.js_dir):], f))

	# def append(self, key, value):
	# 	self.json_payload[key] = value

	def get(self, station=None):
		self.mobile = self.request.headers.get("User-Agent").lower().find("mobile") != -1 or self.request.headers.get("User-Agent").lower().find("android") != -1
		# if not self.beta:
		# 	info.attach_info_to_request(self, extra_list=self.get_cookie("r4_active_list"))
		# self.append("api_info", { "time": int(timestamp()) })
		page_title = None
		if (self.sid == config.get("default_station")):
			page_title = self.locale.translate("page_title_on_google")
		else:
			page_title = "%s %s" % (self.locale.translate("page_title_on_google"), self.locale.translate("station_name_%s" % self.sid))
		self.render(
			self.page_template,
			request=self,
			site_description=self.locale.translate("station_description_id_%s" % self.sid),
			revision_number=config.build_number,
			jsfiles=self.jsfiles,
			# api_url=config.get("api_external_url_prefix"),
			# cookie_domain=config.get("cookie_domain"),
			# locales=api.locale.locale_names_json,
			# relays=config.public_relays_json[self.sid],
			# stream_filename=config.get_station(self.sid, "stream_filename"),
			# station_list=config.station_list_json,
			mobile=self.mobile,
			station_name=page_title,
			dj=self.user.is_dj()
		)
开发者ID:Abchrisabc,项目名称:rainwave,代码行数:91,代码来源:index.py

示例3: MainIndex

# 需要导入模块: from rainwave.user import User [as 别名]
# 或者: from rainwave.user.User import is_dj [as 别名]
class MainIndex(api.web.HTMLRequest):
    description = "Main Rainwave page."
    auth_required = config.has("index_requires_login") and config.get("index_requires_login")
    login_required = config.has("index_requires_login") and config.get("index_requires_login")
    sid_required = False
    beta = False
    page_template = "r5_index.html"
    js_dir = "js5"

    def set_default_headers(self):
        self.set_header("X-Frame-Options", "SAMEORIGIN")

    def prepare(self):
        super(MainIndex, self).prepare()

        if not cache.get_station(self.sid, "sched_current"):
            raise APIException(
                "server_just_started", "Rainwave is Rebooting, Please Try Again in a Few Minutes", http_code=500
            )

            # self.json_payload = {}
        self.jsfiles = None

        if not self.user:
            self.user = User(1)
        self.user.ip_address = self.request.remote_ip
        self.user.ensure_api_key()

        if self.beta or config.get("web_developer_mode") or config.get("developer_mode") or config.get("test_mode"):
            buildtools.bake_beta_css()
            buildtools.bake_beta_templates()
            self.jsfiles = []
            for root, subdirs, files in os.walk(
                os.path.join(os.path.dirname(__file__), "../static/%s" % self.js_dir)
            ):  # pylint: disable=W0612
                for f in files:
                    if f.endswith(".js"):
                        self.jsfiles.append(os.path.join(root[root.find("static/%s" % self.js_dir) :], f))

                # def append(self, key, value):
                # 	self.json_payload[key] = value

    def get(self):
        self.mobile = (
            self.request.headers.get("User-Agent").lower().find("mobile") != -1
            or self.request.headers.get("User-Agent").lower().find("android") != -1
        )
        # if not self.beta:
        # 	info.attach_info_to_request(self, extra_list=self.get_cookie("r4_active_list"))
        # self.append("api_info", { "time": int(timestamp()) })
        page_title = None
        if self.sid == config.get("default_station"):
            page_title = self.locale.translate("page_title_on_google")
        else:
            page_title = "%s %s" % (
                self.locale.translate("page_title_on_google"),
                self.locale.translate("station_name_%s" % self.sid),
            )
        self.render(
            self.page_template,
            request=self,
            site_description=self.locale.translate("station_description_id_%s" % self.sid),
            revision_number=config.build_number,
            jsfiles=self.jsfiles,
            # api_url=config.get("api_external_url_prefix"),
            # cookie_domain=config.get("cookie_domain"),
            # locales=api.locale.locale_names_json,
            # relays=config.public_relays_json[self.sid],
            # stream_filename=config.get_station(self.sid, "stream_filename"),
            # station_list=config.station_list_json,
            mobile=self.mobile,
            station_name=page_title,
            dj=self.user.is_dj(),
        )
开发者ID:rmcauley,项目名称:rainwave,代码行数:76,代码来源:index.py


注:本文中的rainwave.user.User.is_dj方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。