万叶集 |
---|
🎉 隐约雷鸣,阴霾天空。 🎉 |
🎉 但盼风雨来,能留你在此。 🎉 |
文章目录前言:
✌ 作者简介:渴望力量的哈士奇,大家可以叫我 🐶哈士奇🐶 。(我真的有一只哈士奇)
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦
📕 系列专栏:
⛽️ Python全栈系列 - [更新中] 【 本文在该系列】
🍎 Python零基础入门篇
🍎 Python语法进阶篇
👋 网安之路系列
🍋 网安之路踩坑篇
🍋 网安知识扫盲篇
🍋 Vulhub 漏洞复现篇
🍋 Shell脚本编程篇
🍋 Web攻防篇 2021年9月3日停止更新,转战先知等安全社区
🍋 渗透工具使用集锦 2021年9月3日停止更新,转战先知等安全社区
⭐️ 点点点工程师系列
🍹 测试神器 - Charles 篇
🍹 测试神器 - Fiddler 篇
🍹 测试神器 - Jmeter 篇
🍹 自动化 - RobotFrameWork 系列
🍹 自动化 - 基于 JAVA 实现的WEB端UI自动化
🍹 自动化 - 基于 MonkeyRunner 实现的APP端UI自动化
- 🐳 admin 类的搭建
- 🐳 获取用户的函数
- 🐳 添加用户
- 🐳 冻结与恢复用户及修改用户的身份
该章节我们将来开发 “admin.py” 模块的相关功能,今天主要有5件事情需要实现:
🐳 admin 类的搭建1、admin 类的搭建(继承 Base 类)
2、获取当前用户函数(包含获取身份)
3、添加用户(判断当前身份是否是管理员)
4、冻结与恢复用户(active 标签判断用户是否可用的标识)
5、修改用户身份(管理员 *** 作修改 role为 “admin” 或者 “normal” ;"normal"用户可参与抽奖,"admin"用户只能是为普通用户服务的角色)
1、定义
Admin
类、构造函数,同时也利用super()函数继承并使用 Base 类的构造函数。2、在被调用的
Base.py
模块 ,添加调试语句,验证Admin 类
的调用是否成功。
代码示例如下:
# coding:utf-8
import os
from base import Base
"""
***************************************************************************************************************
1、admin 类的搭建(继承 Base 类)
2、获取当前用户函数(包含获取身份)
3、添加用户(判断当前身份是否是管理员)
4、冻结与恢复用户(active 标签判断用户是否可用的标识)
5、修改用户身份(管理员 *** 作修改 role为 "admin" 或者 "normal" ;"normal"用户可参与抽奖,"admin"用户只能是为普通用户服务的角色)
***************************************************************************************************************
"""
class Admin(Base):
def __init__(self, username, user_json, gift_json): # 定义构造函数,同时也利用super()函数继承并使用 Base 类的构造函数
self.username = username
super().__init__(user_json, gift_json)
if __name__ == '__main__':
user_path = os.path.join(os.getcwd(), "storage", "user.json")
gift_path = os.path.join(os.getcwd(), "storage", "gift.json")
admin = Admin('Neo', user_path, gift_path)
运行结果如下:
🐳 获取用户的函数
接下来编写获取用户的函数,首先最重要的就是获取用户的身份。
代码示例如下:
# coding:utf-8
import os
from base import Base
from common.error import NotUserError, UserActiveError, RoleError
"""
***************************************************************************************************************
1、admin 类的搭建(继承 Base 类)
2、获取当前用户函数(包含获取身份)
3、添加用户(判断当前身份是否是管理员)
4、冻结与恢复用户(active 标签判断用户是否可用的标识)
5、修改用户身份(管理员 *** 作修改 role为 "admin" 或者 "normal" ;"normal"用户可参与抽奖,"admin"用户只能是为普通用户服务的角色)
***************************************************************************************************************
"""
class Admin(Base):
def __init__(self, username, user_json, gift_json): # 定义构造函数,同时也利用super()函数继承并使用 Base 类的构造函数
self.username = username
super().__init__(user_json, gift_json)
self.get_user()
def get_user(self):
users = self._Base__read_users() # 注意 "__read_users()" 是 Base 类的私有函数,不能直接调用 "self.__read_users()"
current_user = users.get(self.username)
if current_user is None: # 判断用户是否存在,不存在则抛出自定义 "error.py" 模块的 NotUserError 异常
raise NotUserError('not user %s' % self.username)
if current_user.get('active') == False: # 判断用户可用状态,不可用则抛出自定义 "error.py" 模块的 UserActiveError 异常
raise UserActiveError('the user %s had not use' % self.username)
if current_user.get('role') != 'admin':
raise RoleError('permission by admin')
self.user = current_user
self.role = current_user.get('role')
self.name = current_user.get('username')
self.active = current_user.get('active')
if __name__ == '__main__':
gift_path = os.path.join(os.getcwd(), 'storage', 'gift.json')
user_path = os.path.join(os.getcwd(), 'storage', 'user.json')
admin = Admin('Neo', user_path, gift_path)
admin.get_user()
print(admin.name, admin.role)
运行结果如下:
🐳 添加用户
添加用户之前,我们需要判断是否是 “admin” 的身份。
# coding:utf-8
import os
from base import Base
from common.error import NotUserError, UserActiveError, RoleError
"""
***************************************************************************************************************
1、admin 类的搭建(继承 Base 类)
2、获取当前用户函数(包含获取身份)
3、添加用户(判断当前身份是否是管理员)
4、冻结与恢复用户(active 标签判断用户是否可用的标识)
5、修改用户身份(管理员 *** 作修改 role为 "admin" 或者 "normal" ;"normal"用户可参与抽奖,"admin"用户只能是为普通用户服务的角色)
***************************************************************************************************************
"""
class Admin(Base):
def __init__(self, username, user_json, gift_json): # 定义构造函数,同时也利用super()函数继承并使用 Base 类的构造函数
self.username = username
super().__init__(user_json, gift_json)
self.get_user()
def get_user(self):
users = self._Base__read_users() # 注意 "__read_users()" 是 Base 类的私有函数,不能直接调用 "self.__read_users()"
current_user = users.get(self.username)
if current_user is None: # 判断用户是否存在,不存在则抛出自定义 "error.py" 模块的 NotUserError 异常
raise NotUserError('not user %s' % self.username)
if current_user.get('active') == False: # 判断用户可用状态,不可用则抛出自定义 "error.py" 模块的 UserActiveError 异常
raise UserActiveError('the user %s had not use' % self.username)
if current_user.get('role') != 'admin':
raise RoleError('permission by admin')
self.user = current_user
self.role = current_user.get('role')
self.name = current_user.get('username')
self.active = current_user.get('active')
def __check(self, message): # 判断是否是管理员身份
self.get_user()
if self.role != 'admin':
raise Exception(message)
def add_user(self, username, role): # 添加用户函数
self.__check('permission')
self._Base__write_user(username=username, role=role) # 调用 Base 类的 "__write_user()" 函数添加用户啊
if __name__ == '__main__':
gift_path = os.path.join(os.getcwd(), 'storage', 'gift.json')
user_path = os.path.join(os.getcwd(), 'storage', 'user.json')
admin = Admin('Neo', user_path, gift_path)
# admin.get_user()
# print(admin.name, admin.role)
admin.add_user(username="Adem", role="normal")
admin.get_user()
执行结果如下:
🐳 冻结与恢复用户及修改用户的身份
冻结用户、恢复用户就是通过 active
标签判断用户是否可用, true
为可用状态, false
即禁用状态;
修改用户身份就更简单了,直接修改 role
标签即可,目前只有两个身份 'admin' 与 'normal'
。
代码示例如下:
# coding:utf-8
import os
from base import Base
from common.error import NotUserError, UserActiveError, RoleError
"""
***************************************************************************************************************
1、admin 类的搭建(继承 Base 类)
2、获取当前用户函数(包含获取身份)
3、添加用户(判断当前身份是否是管理员)
4、冻结与恢复用户(active 标签判断用户是否可用的标识)
5、修改用户身份(管理员 *** 作修改 role为 "admin" 或者 "normal" ;"normal"用户可参与抽奖,"admin"用户只能是为普通用户服务的角色)
***************************************************************************************************************
"""
class Admin(Base):
def __init__(self, username, user_json, gift_json): # 定义构造函数,同时也利用super()函数继承并使用 Base 类的构造函数
self.username = username
super().__init__(user_json, gift_json)
self.get_user()
def get_user(self):
users = self._Base__read_users() # 注意 "__read_users()" 是 Base 类的私有函数,不能直接调用 "self.__read_users()"
current_user = users.get(self.username)
if current_user is None: # 判断用户是否存在,不存在则抛出自定义 "error.py" 模块的 NotUserError 异常
raise NotUserError('not user %s' % self.username)
if current_user.get('active') == False: # 判断用户可用状态,不可用则抛出自定义 "error.py" 模块的 UserActiveError 异常
raise UserActiveError('the user %s had not use' % self.username)
if current_user.get('role') != 'admin':
raise RoleError('permission by admin')
self.user = current_user
self.role = current_user.get('role')
self.name = current_user.get('username')
self.active = current_user.get('active')
def __check(self, message): # 判断是否是管理员身份
self.get_user()
if self.role != 'admin':
raise Exception(message)
def add_user(self, username, role): # 添加用户函数
self.__check('permission')
self._Base__write_user(username=username, role=role) # 调用 Base 类的 "__write_user()" 函数添加用户
def update_user_active(self, username): # 变更用户的 active 状态
self.__check('permission')
self._Base__change_acitve(username=username) # 调用 Base 类的 "__change_acitve" 函数变更用户的 active 状态
def update_user_role(self, username, role): # 变更用户的 role 状态 (权限)
self.__check('permission')
self._Base__change_role(username=username, role=role) # 调用 Base 类的 "__change_role" 函数变更用户的 role 状态
if __name__ == '__main__':
gift_path = os.path.join(os.getcwd(), 'storage', 'gift.json')
user_path = os.path.join(os.getcwd(), 'storage', 'user.json')
admin = Admin('Neo', user_path, gift_path)
# admin.get_user()
# print(admin.name, admin.role)
admin.update_user_active(username="Adem")
admin.update_user_role(username='Adem', role='admin')
运行结果如下:(将 “user.json” 文件内的内容进行JSON格式化)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)