當前位置: 首頁>>代碼示例>>Python>>正文


Python User.from_json方法代碼示例

本文整理匯總了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
開發者ID:asascience-open,項目名稱:ooi-ui-services,代碼行數:60,代碼來源:user.py

示例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
開發者ID:RyanMaciel,項目名稱:ooi-ui-services,代碼行數:45,代碼來源:user.py


注:本文中的ooiservices.app.models.User.from_json方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。