本文整理汇总了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?
示例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()
)
示例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(),
)