本文整理汇总了Python中ooiservices.app.models.User.from_json方法的典型用法代码示例。如果您正苦于以下问题:Python User.from_json方法的具体用法?Python User.from_json怎么用?Python User.from_json使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ooiservices.app.models.User
的用法示例。
在下文中一共展示了User.from_json方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_user
# 需要导入模块: from ooiservices.app.models import User [as 别名]
# 或者: from ooiservices.app.models.User import from_json [as 别名]
def create_user():
"""
Requires either a CSRF token shared between the UI and the Services OR an
authenticated request from a valid user.
"""
csrf_token = request.headers.get("X-Csrf-Token")
if not csrf_token or csrf_token != current_app.config["UI_API_KEY"]:
auth = False
if request.authorization:
auth = verify_auth(request.authorization["username"], request.authorization["password"])
if not auth:
return jsonify(error="Invalid Authentication"), 401
data = json.loads(request.data)
# add user to db
role_mapping = {
1: ["annotate", "asset_manager", "user_admin", "redmine"], # Administrator
2: ["annotate", "asset_manager"], # Marine Operator
3: [], # Science User
}
role_scopes = role_mapping[data["role_id"]]
valid_scopes = UserScope.query.filter(UserScope.scope_name.in_(role_scopes)).all()
try:
new_user = User.from_json(data)
new_user.scopes = valid_scopes
new_user.active = True
db.session.add(new_user)
db.session.commit()
except Exception as e:
return jsonify(error=e.message), 409
try:
redmine = redmine_login()
organization = new_user.organization.organization_name
tmp = dt.datetime.now() + dt.timedelta(days=1)
due_date = dt.datetime.strftime(tmp, "%Y-%m-%d")
issue = redmine.issue.new()
issue.project_id = current_app.config["REDMINE_PROJECT_ID"]
issue.subject = "New User Registration for OOI UI: %s, %s" % (new_user.first_name, new_user.last_name)
issue.description = (
"A new user has requested access to the OOI User Interface. Please review the application for %s, their role in the organization %s is %s and email address is %s"
% (new_user.first_name, organization, new_user.role, new_user.email)
)
issue.priority_id = 1
issue.due_date = due_date
# Get the list of ticker Trackers
trackers = list(redmine.tracker.all())
# Find the REDMINE_TRACKER (like 'Support') and get the id
# This make a difference for field validation and proper tracker assignment
config_redmine_tracker = current_app.config["REDMINE_TRACKER"]
tracker_id = [tracker.id for tracker in trackers if tracker.name == config_redmine_tracker][0]
issue.tracker_id = tracker_id
issue.save()
except Exception as e:
current_app.logger.exception("Failed to generate redmine issue for new user")
return jsonify(error=e.message), 409
return jsonify(new_user.to_json()), 201
示例2: create_user
# 需要导入模块: from ooiservices.app.models import User [as 别名]
# 或者: from ooiservices.app.models.User import from_json [as 别名]
def create_user():
'''
Requires either a CSRF token shared between the UI and the Services OR an
authenticated request from a valid user.
'''
csrf_token = request.headers.get('X-Csrf-Token')
if not csrf_token or csrf_token != current_app.config['UI_API_KEY']:
auth = False
if request.authorization:
auth = verify_auth(request.authorization['username'], request.authorization['password'])
if not auth:
return jsonify(error="Invalid Authentication"), 401
data = json.loads(request.data)
#add user to db
role_mapping = {
1: ['annotate', 'asset_manager', 'user_admin', 'redmine'], # Administrator
2: ['annotate', 'asset_manager'], # Marine Operator
3: [] # Science User
}
role_scopes = role_mapping[data['role_id']]
valid_scopes = UserScope.query.filter(UserScope.scope_name.in_(role_scopes)).all()
try:
new_user = User.from_json(data)
new_user.scopes = valid_scopes
db.session.add(new_user)
db.session.commit()
except Exception as e:
return jsonify(error=e.message), 409
try:
redmine = redmine_login()
organization = new_user.organization.organization_name
issue = redmine.issue.new()
issue.project_id = current_app.config['REDMINE_PROJECT_ID']
issue.subject = 'New User Registration for OOI UI: %s, %s' % (new_user.first_name, new_user.last_name)
issue.description = 'A new user has requested access to the OOI User Interface. Please review the application for %s, their role in the organization %s is %s and email address is %s' % (new_user.first_name, organization, new_user.role, new_user.email)
issue.priority_id = 1
issue.save()
except:
current_app.logger.exception("Failed to generate redmine issue for new user")
return jsonify(new_user.to_json()), 201