Esempio n. 1
0
def get_userby_name(name):
    logging.info('user name db call')
    user = Users.query.filter_by(name=name).first()
    logging.info('user name db call success')
    if user is not None:
        logging.info('user name exiting')
        return wrapper.wrapper(to_json(user), "Get user by id.", 200), 200
    else:
        logging.info('user name exiting')
        return wrapper.wrapper(None, "User not found", 201), 201

    if request.method == 'PUT':
        logging.info('user name put menthod')
        update_user = request.get_json()
        user.name = update_user['name']
        user.email = update_user['email']
        user.phone = update_user['phone']
        user.user_type = update_user['user_type']
        try:
            db.session.commit()
            print(update_user)
            logging.info('user name put menthod exiting')
            return wrapper.wrapper(None, "success updated  user data",
                                   201), 201
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.info('user name put menthod exiting')
            db.session.rollback()
            return wrapper.wrapper(None, e.message, 500), 500
Esempio n. 2
0
def get_user(id):
    logging.info('get user by id start and db call')
    user = Users.query.filter_by(id=id).first()
    logging.info('get user by id start and db call success')
    if user is not None:
        logging.info('get user by id exiting')
        return wrapper.wrapper(to_json(user), "Get user by id.", 200), 200
    else:
        logging.info('get user by id exiting')
        return wrapper.wrapper(None, "User not found", 201), 201
Esempio n. 3
0
def create_user_representative():
    if request.method == 'POST':
        json_data = request.json
        logging.info('create representative user post ')
        token = uuid.uuid4()
        user_type = UserType.REPRESENTATIVE
        user_group = GroupName.GROUP2
        model_user = Users(json_data,
                           confirmed=False,
                           token=token,
                           user_type=user_type,
                           user_group=user_group)
        addr = Address(json_data['address'])
        # sar = Sar(json_data['sar'])
        # model_user.sar.append(sar)
        model_user.address.append(addr)
        db.session.add(model_user)
        try:
            try:
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()
            confirm_url = url_for('user.confirm_email',
                                  token=token,
                                  _external=True)
            html = render_template(
                'verification-email.html',
                confirm_url=confirm_url,
                name=json_data['name'],
                company=current_app.config['DEFAULT_COMPANY_NAME'])
            subject = "Please confirm your email"
            sendMail(subject, json_data['email'], html)
            # send_mail.send_email(json_data['email'], subject, html)
            logging.info('create representative user post exiting')
            return wrapper.wrapper(None,
                                   "Representative user created successfully",
                                   201), 201
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.info('create representative user post exiting')
            return wrapper.wrapper(None, e.message, 500), 500

    if request.method == 'GET':
        logging.info('create representative user post and db call')
        get_users = Users.query.all()
        logging.info('create representative user post and db call success')
        all_users = []

        for user in get_users:
            for i in user.address.all():
                print("pincode-->", i.pincode)
            all_users.append(user.to_dict())
        logging.info('create representative user post exiting')
        return wrapper.wrapper(all_users, None, 200), 200
Esempio n. 4
0
def get_ticket_info(id):
    logging.info('put ticket-info db call start')
    update_ticket_info = TicketInfo.query.filter_by(id=id).first()
    logging.info('put ticket-info db success')
    if request.method == 'GET':
        logging.info('put ticket-info start')
        if update_ticket_info is not None:
            user_data = update_ticket_info.to_dict()
            logging.info('put ticket-info Exiting')
            return wrapper.wrapper(user_data, None, 200), 200
        else:
            logging.info('put ticket-info Exiting')
            return wrapper.wrapper(None, "user not found", 204), 204
Esempio n. 5
0
def get_department(id):
    logging.info('get user by id db call')
    user = Users.query.filter_by(id=id).first()
    address = Address.query.filter_by(user_id=id).first()
    logging.info('get user by id db call success')
    if request.method == 'PUT':
        logging.info('get user by id put method')
        if user is not None:
            update_user = request.get_json()
            user.name = update_user['name']
            user.email = update_user['email']
            user.phone = update_user['phone']
            user.user_type = update_user['user_type']
            try:
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()
            address.addressline1 = update_user['address']['addressline1']
            address.addressline2 = update_user['address']['addressline2']
            address.pincode = update_user['address']['pincode']
            address.city = update_user['address']['city']
            address.country = update_user['address']['country']
            address.state = update_user['address']['state']
            try:
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()
            print(update_user)
            logging.info('get user by id exiting')
            return wrapper.wrapper(None, "success updated  user data",
                                   201), 201
        else:
            logging.info('get user by id exiting')
            return wrapper.wrapper(None, "User not found", 201), 201

    if request.method == 'DELETE':
        logging.info('delete user by id start')
        if user is not None:
            try:
                db.session.delete(user)
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()
            logging.info('delete user by id exiting')
            return make_response(jsonify("Successfully deleted")), 204
        else:
            logging.info('delete user by id exiting')
            return make_response("User not found"), 204
Esempio n. 6
0
def get_ticket(id):

    update_ticket = Ticket.query.filter_by(id=id).first()
    if request.method == 'GET':
        logging.info('get ticket start')
        if update_ticket is not None:
            user_data = update_ticket.to_dict()
            logging.info('get ticket start Exiting')
            return wrapper.wrapper(user_data, None, 200), 200
        else:
            logging.info('get ticket start Exiting')
            return wrapper.wrapper(None, "user not found", 204), 204

    if request.method == 'PUT':
        logging.info('put ticket start')
        up_ticket = request.get_json()
        update_ticket.summary = up_ticket['summary']
        update_ticket.description = up_ticket['description']
        update_ticket.type = up_ticket['type']
        update_ticket.component = up_ticket['component']
        update_ticket.severity = up_ticket['severity']
        update_ticket.priority = up_ticket['priority']
        update_ticket.owner = up_ticket['owner']
        update_ticket.reporter = up_ticket['reporter']
        update_ticket.cc = up_ticket['cc']
        update_ticket.version = up_ticket['version']
        update_ticket.milestone = up_ticket['milestone']
        update_ticket.status = up_ticket['status']
        update_ticket.resolution = up_ticket['resolution']
        update_ticket.keywords = up_ticket['keywords']
        update_ticket.product = up_ticket['product']
        update_ticket.modified_time = datetime.datetime.now()
        # db.session.add(user)
        try:
            db.session.commit()
            logged_user = 1

            # Storing data in audit table
            logging.info('put ticket start db call')
            log_audit("Update Ticket", "Update Ticket", "SAR", None, None,
                      logged_user, datetime.datetime.now())
            logging.info('put ticket start Exiting')
            return wrapper.wrapper(None, "Success", 201), 201
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.info('put ticket start Exiting')
            db.session.rollback()
            return wrapper.wrapper(None, e.message, 500), 500
Esempio n. 7
0
def get_sar_by_page_count(page, count):
    per_page = count
    if request.method == 'GET':
        logging.info('get users/page/<int:page> start and db call')
        get_users = Users.query.filter_by(
            user_type='ComplainceTeamMember').paginate(page, per_page, False,
                                                       20)
        logging.info('get users/page/<int:page> start and db call success')
        # print("get_sar----->",get_sar.items)
        # print("Type--->", type(get_sar.items))
        all_users = []
        for sar in get_users.items:
            all_users.append(sar.to_dict())

        pagination_data = {
            'has_next': get_users.has_next,
            'pages': get_users.pages,
            'has_prev': get_users.has_prev,
            'total': get_users.total,
            'page': get_users.page,
            'next_num': get_users.next_num,
            'users': all_users
        }
        logging.info('get users/page/<int:page> exiting')
        return wrapper.wrapper(pagination_data, "Getting all CTM users.", 200)
Esempio n. 8
0
def forgot_new(token):
    reset_data = request.json
    logging.info('forget token db call')
    user = Users.query.filter_by(password_reset_token=token).first()
    logging.info('forget token db call success')

    if user is not None:
        user.password = bcrypt.generate_password_hash(reset_data['password'])
        user.password_reset_token = None
        try:
            db.session.commit()
            logging.info('forget token exiting')
            return render_template(
                'sar-Response.html',
                SAR_response='Password successfully changed.')
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.info('forget token exiting')
            db.session.rollback()
            return wrapper.wrapper(None, e.message, 500), 500
    else:
        logging.info('forget token exiting')
        return render_template(
            'sar-Response.html',
            SAR_response='Password change was unsuccessful.')
Esempio n. 9
0
def logout(user_id):
    #sesson = User_Session.query.filter_by(user_id=user_id).first()

    #if sesson is not None:
    #    db.session.delete(sesson)
    #    db.session.commit()
    logging.info('logout entry and exit')
    return wrapper.wrapper(None, "Session Successfully deleted", 201), 201
Esempio n. 10
0
def create_ticket_info():
    print("Entering method")
    if request.method == 'POST':
        logging.info('post ticket info and start')
        json_data = request.json
        logging.info('post ticket info db call')
        tic = TicketInfo.query.all()
        logging.info('post ticket info db response')
        a = []
        for t in tic:
            a.append(t.id)
        maxuid = max(a)
        id = None
        if tic:
            id = maxuid + 1
        else:
            id = 1
        model_user = TicketInfo(json_data, id)
        # model_user = TicketInfo(json_data)
        try:
            db.session.add(model_user)
            db.session.commit()
            logged_user = 1

            # Storing data in audit table
            log_audit("Create Ticket", "Create Ticket", "SAR", logged_user,
                      datetime.datetime.now(), None, None)
            #print("ticket info ---->",)
            logging.info('post ticket info Exiting')
            return wrapper.wrapper(None, "Success", 201), 201
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.error('post ticket info Exiting')
            db.session.rollback()
            return wrapper.wrapper(None, e.message, 500), 500

    if request.method == 'GET':
        logging.info('get ticket info and db call')
        get_users = TicketInfo.query.all()
        logging.info('get ticket info and db call success')
        all_users = []
        for user in get_users:
            all_users.append(user.to_dict())
        logging.info('get ticket info Exiting')
        return wrapper.wrapper(all_users, None, 200), 200
Esempio n. 11
0
def progress_ticket(id):
    logging.info('put /ticket/accept and db call')
    update_ticket = Ticket.query.filter_by(id=id).first()
    logging.info('put /ticket/accept and db call success')
    if request.method == 'PUT':
        if update_ticket is not None:
            up_ticket = request.json
            update_ticket.status = up_ticket['status']
            update_ticket.modified_time = datetime.datetime.now()
            try:
                try:
                    db.session.commit()
                except (sqlalchemy.exc.SQLAlchemyError,
                        sqlalchemy.exc.DBAPIError) as e:
                    db.session.rollback()
                logged_user = 1

                # Storing data in audit table
                log_audit("Accept Ticket", "Accept Ticket", "SAR", logged_user,
                          datetime.datetime.now(), None, None)

                sar = Sar.query.filter_by(id=update_ticket.sar_id).first()
                user = Users.query.filter_by(id=sar.user_id).first()

                mail_tempate = render_template(
                    'sar-acceptance.html',
                    name=user.name,
                    company=current_app.config['DEFAULT_COMPANY_NAME'],
                    ticketID=id,
                    status='Accepted')
                sendMail("Ticket successfully assigned.", user.email,
                         mail_tempate)
                # send_email(user.email, "Your SAR accepted.", mail_tempate)
                logging.info('put /ticket/accept exiting')
                return wrapper.wrapper(None, "Ticket successfully assigned.",
                                       201), 201
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                logging.info('put /ticket/accept exiting')
                db.session.rollback()
                return wrapper.wrapper(None, e.message, 500), 500
        else:
            logging.info('put /ticket/accept exiting')
            return wrapper.wrapper(None, "Ticket not found.", 201), 201
Esempio n. 12
0
def create_ticket():
    if request.method == 'POST':
        logging.info('post ticket method start')
        json_data = request.json
        logging.info('get ticket call db')
        tic = Ticket.query.all()
        a = []
        for t in tic:
            a.append(t.uid)
        maxuid = max(a)
        logging.info('get ticket db response')
        json_data['created_time'] = datetime.datetime.now()
        id = None
        if tic:
            id = maxuid + 1
        else:
            id = 1
        model_user = Ticket(json_data, id, json_data['sar_id'])

        try:
            db.session.add(model_user)
            db.session.commit()
            logged_user = 1
            # Storing data in audit table
            log_audit("Create Ticket", "Create Ticket", "SAR", logged_user,
                      datetime.datetime.now(), None, None)
            data = {'ticket_id': model_user.id}
            logging.info('get ticket success exiting')
            return wrapper.wrapper(data, "Success", 201), 201
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.error('get ticket success exiting')
            db.session.rollback()
            return wrapper.wrapper(None, e.message, 500), 500

    if request.method == 'GET':
        logging.info('get ticket and db method start')
        get_users = Ticket.query.all()
        logging.info('get ticket and db call success')
        all_users = []
        for user in get_users:
            all_users.append(user.to_dict())
        logging.info('get ticket and Exiting')
        return wrapper.wrapper(all_users, None, 200), 200
Esempio n. 13
0
def create_license():
    if request.method == 'POST':
        json_data = request.json
        email = json_data['email']
        for_users_left = json_data['no_of_users']

        customer_id = str(json_data['customer_id'])
        no_of_users = str(json_data['no_of_users'])
        no_of_modules = str(json_data['no_of_modules'])
        domain = str(json_data['domain'])

        license_data = customer_id + "," + no_of_modules + "," + no_of_users + "," + domain
        print("data")
        keysize = 2048
        (public, private) = rsa.newkeys(keysize)
        #encrypted = b64encode(rsa.encrypt(license_data, public))
        #decrypted = rsa.decrypt(b64decode(encrypted), private)
        signature = b64encode(rsa.sign(license_data, private, "SHA-512"))
        #verify = rsa.verify(license_data, b64decode(signature), public)
        privateKey = private.exportKey('PEM')
        publicKey = public.exportKey('PEM')
        users_left = for_users_left - 1

        expary_date = datetime.datetime.now()
        model_data = License(json_data,
                             expary_date=expary_date,
                             privateKey=privateKey,
                             publicKey=publicKey,
                             signature=signature,
                             users_left=users_left)
        try:
            db.session.add(model_data)
            db.session.commit()
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            db.session.rollback()

        mail_tempate = render_template('license-Key.html',
                                       licenseKey=publicKey)
        send_email(email, "Yor License Key From Complaince!", mail_tempate)

        # password_reset__url = url_for('user.confirm_email', token=token, _external=True)
        #html = render_template('license-key.html', licenseKey=publicKey,
        #                      name="Some Username", company="Some Company name")
        #subject = "Your LicenseKey From Complaince!"
        #send_mail.send_email(email, subject, html)

        ret = {'res': 'LicenseKey sent to Your Email'}
        return wrapper.wrapper(ret, None, 200), 200

    if request.method == 'GET':
        get_license = License.query.all()
        all_lics = []
        for license in get_license:
            all_lics.append(license.to_dict())
        return make_response(jsonify(all_lics)), 200
Esempio n. 14
0
def get_by_type(user_type):
    if request.method == 'GET':
        all_users = []
        logging.info('get user type call and db call')
        user = Users.query.filter_by(user_type=user_type).all()
        logging.info('get user type call and db call success')
        for u in user:
            all_users.append(u.to_dict())
        logging.info('get user type call exiting')
        return wrapper.wrapper(all_users, "Getting user by type", 200), 200
Esempio n. 15
0
def update_user_type(user_id):
    logging.info('update user type by id db call')
    user = Users.query.filter_by(id=user_id).first()
    logging.info('update user type by id db call success')
    if request.method == 'PUT':
        logging.info('update user type by put method')
        if user is not None:
            update_user = request.get_json()
            print("user---type:", update_user['user_type'])
            user.user_type = update_user['user_type']
            try:
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()
            logging.info('update user type by put method exiting')
            return wrapper.wrapper(None, "success updated  user data",
                                   201), 201
        else:
            logging.info('update user type by put method exiting')
            return wrapper.wrapper(None, "User not found", 201), 201
Esempio n. 16
0
def get_tickets_sarid(sar_id):
    logging.info('put tickets/by_sar start and db call')
    get_tickets = Ticket.query.filter(Ticket.sar_id == sar_id)
    logging.info('put and db call success')
    all_ticket = []
    for ticket in get_tickets:
        # for tic in sar.ticketinfo.all():
        #     for dep in tic.department.all():
        #         print("Inside address--->", dep.name)
        all_ticket.append(ticket.to_dict())
    logging.info('put and exiting')
    return wrapper.wrapper(all_ticket, None, 200), 200
Esempio n. 17
0
def assign_ticket(id):
    data = request.json
    if request.method == 'PUT':
        logging.info('put ticket/assign/ and db call')
        ticket = Ticket.query.filter_by(id=id).first()
        logging.info('put db success')
        ticket.owner = data['owner']
        ticket.modified_time = datetime.datetime.now()
        #ticket.status='active'
        try:
            try:
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()

            user = Users.query.filter_by(name=ticket.owner).first()
            now = datetime.datetime.now()
            date = now.date()
            # Storing data in audit table
            log_audit("Assign Ticket", "Assign Ticket", "SAR", user.id,
                      datetime.datetime.now(), None, None)

            mail_tempate = render_template(
                'sar-notification.html',
                name=user.name,
                status=ticket.status,
                company=current_app.config['DEFAULT_COMPANY_NAME'],
                ticketID=ticket.id,
                date=date,
                priority=ticket.priority)
            sendMail("Ticket Assigned to you", user.email, mail_tempate)
            # send_email(user.email, "Ticket Assigned to you", mail_tempate)
            logging.info('put ticket/assign/ exit')
            return wrapper.wrapper(None, "Ticket assigned successfully",
                                   201), 201
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.info('put ticket/assign/ exit')
            return wrapper.wrapper(None, e.message, 500), 500
Esempio n. 18
0
def forgot(email):
    logging.info('forget password db call')
    user = Users.query.filter_by(email=email).first()
    logging.info('forget password db call success')

    if user:
        token = uuid.uuid4()
        user.password_reset_token = token
        try:
            try:
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()
            password_reset__url = url_for('user.forgot_new',
                                          token=token,
                                          _external=True)
            html = render_template('change-password1.html',
                                   password_reset__url="http://" +
                                   BaseConfig.BASE_URL + "/forgot/new/" +
                                   str(token),
                                   name=user.name,
                                   company=user.name)
            subject = "Password reset"
            sendMail(subject, email, html)
            # send_mail.send_email(email, subject, html)
            print("valid user")
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.info('forget password exiting')
            return wrapper.wrapper(None, e.message, 500), 500
        logging.info('forget password exiting')
        return wrapper.wrapper(None, "Sent email with reset link", 200), 200
    else:
        logging.info('forget password exiting')
        return wrapper.wrapper(None, "Email id not registered with us",
                               201), 201
Esempio n. 19
0
def get_all_team_member():
    if request.method == 'GET':
        logging.info('get all team member start and db call')
        get_users = Users.query.filter(
            Users.user_type == UserType.COMPLIANCETEAMMEMBER)
        logging.info('get all team member start and db call success')
        print("all user-->", get_users)
        all_users = []

        for user in get_users:
            for i in user.address.all():
                print("pincode-->", i.pincode)
            all_users.append(user.to_dict())
        logging.info('get all team member start exiting')
        return wrapper.wrapper(all_users, None, 200), 200
Esempio n. 20
0
def auth_user():
    logging.info('auth post info start')
    json_data = request.json
    email = json_data["email"]
    user = Ticket.query.filter_by(email=email).first()
    g.current_user = user
    login_user(user)
    if user is not None:
        # Identity can be any data that is json serializable
        access_token = create_access_token(identity=user.id)
        logging.info('auth post info Exit')
        return jsonify(access_token=access_token), 200
    else:
        logging.info('auth post info Exit')
        return wrapper.wrapper(None, "user not found", 204), 204
Esempio n. 21
0
def login():
    """View function for login view."""
    logging.info('usre login start')

    params = request.get_json()
    email = params.get('email', None)
    password = params.get('password', None)
    client_ip = params.get('client_ip', None)
    logging.info('usre login start db call')
    user = Users.query.filter_by(email=email).first()
    logging.info('usre login start db call success')
    if not user:
        return wrapper.wrapper(None, "User not found.", 200), 200
    if user:
        if user.confirmed is True:
            logging.info('usre login start validation user call')
            compare = bcrypt.check_password_hash(user.password, password)
            # TODO Check from DB here
            if compare is False:
                return wrapper.wrapper(None, "Bad email or password", 201), 201
            else:
                user_type = user.user_type
                user_group = user.user_group
                # sesson = User_Session.query.filter_by(user_id=user.id).first()

                # if sesson is not None:
                #   return wrapper.wrapper(None, "Already Loged In To Ip:" + sesson.client_ip, 201), 201

                # else:
                #   model_session = User_Session(client_ip=client_ip, user_id=user.id, user_name=user.name, user_type=user.user_type,
                #                          status='LogedIn')

                # db.session.add(model_session)
                # db.session.commit()
                # user_type = user.user_type
                # user_group = user.user_group

                ret = {
                    'jwt': create_jwt(identity=user_group),
                    'role': user_type,
                    'user_id': user.id,
                    'exp':
                    datetime.utcnow() + current_app.config['JWT_EXPIRES']
                }
                return wrapper.wrapper(ret, None, 200), 200
        else:
            logging.info('usre login success')
            return wrapper.wrapper(
                None, "Email not validated. Please validate and try again.",
                200), 200

    if not email:
        return wrapper.wrapper(None, "Missing email parameter", 201), 201
    if not password:
        return wrapper.wrapper(None, "Missing password parameter", 201), 201
Esempio n. 22
0
def getInfoBySarId(sar_id):
    if request.method == 'GET':
        logging.info('get ticket info method')
        all_info = []
        logging.info('get ticket info db call')
        info = TicketInfo.query.filter_by(sar_id=sar_id).all()
        logging.info('get ticket info db success')
        for i in info:
            #all_info.append(i.to_dict())
            json = {
                "department": i.__dict__['department'].to_dict(),
                "sar": i.__dict__['sar'].to_dict(),
                "ticket": i.__dict__['tickets'].to_dict(),
                "user": i.__dict__['sar'].__dict__['user'].to_dict()
            }
            all_info.append(json)
        logging.info('get ticket info db Exiting')
        return wrapper.wrapper(all_info, "Getting all ticket info by sar id.",
                               200), 200
Esempio n. 23
0
def confirm_email(token):
    logging.info('confirm token db call')
    user = Users.query.filter_by(token=token).first()
    logging.info('confirm token db call success')
    if user:
        user.confirmed = True
        user.confirmed_on = datetime.now()
        user.token = None
        try:
            db.session.commit()
            print("Get user by token", user.email)
            return render_template(
                'sar-Response.html',
                SAR_response='Email confirmed successfully!')
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.info('confirm token exiting')
            db.session.rollback()
            return wrapper.wrapper(None, e.message, 500), 500
    else:
        logging.info('confirm token exiting')
        return render_template('sar-Response.html',
                               SAR_response='User not found!')
Esempio n. 24
0
def create_user_external_user_test():
    json_data = request.json
    token = uuid.uuid4()

    created_by = json_data["created_by"]
    logging.info('create external user carete and db call')
    license_data = License.query.filter_by(created_by=created_by).first()
    logging.info('create external user carete and db call success')

    if license_data is not None:

        if license_data.users_left is not 0:
            user_count = license_data.users_left - 1

            update_license = license_data
            license_data.users_left = user_count
            try:
                db.session.add(update_license)
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()

            user_type = UserType.EXTERNALUSER
            user_group = GroupName.GROUP2
            model_user = Users(json_data,
                               confirmed=False,
                               token=token,
                               user_type=user_type,
                               user_group=user_group)
            addr = Address(json_data['address'])
            model_user.address.append(addr)
            try:
                db.session.add(model_user)
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()

            confirm_url = url_for('user.confirm_email',
                                  token=token,
                                  _external=True)
            html = render_template(
                'verification-email.html',
                confirm_url=confirm_url,
                name=json_data['name'],
                company=current_app.config['DEFAULT_COMPANY_NAME'],
                licenseKey=license_data.publicKey)
            subject = "Please confirm your email"
            sendMail(subject, json_data['email'], html)
            # send_mail.send_email(json_data['email'], subject, html)
            logging.info('create external user exiting')
            return wrapper.wrapper(
                None,
                "External user created successfully And Key Sent To The User",
                200), 200

        else:
            logging.info('create external user exiting')
            return wrapper.wrapper(None, "Your User Count Exceeded!", 201), 201

    else:
        logging.info('create external user exiting')
        return wrapper.wrapper(None, "You dont have License Yet!", 201), 201
Esempio n. 25
0
def create_user_administrator():
    if request.method == 'POST':
        logging.info('create admin post statry')
        json_data = request.json
        token = uuid.uuid4()
        user_type = UserType.ADMINISTRATOR
        user_group = GroupName.GROUP1
        model_user = Users(json_data['primary'],
                           confirmed=False,
                           token=token,
                           user_type=user_type,
                           user_group=user_group)
        addr = Address(json_data['primary']['address'])
        # sar = Sar(json_data['sar'])
        # model_user.sar.append(sar)
        model_user.address.append(addr)
        org_data = json_data['organization']

        # Organization data
        org = Organization()
        org.companyName = org_data['companyName']
        org.contactNo = org_data['contactNo']
        org.registrationNumber = org_data['registrationNumber']
        org.vatNumber = org_data['vatNumber']
        org.primary_user = json_data['primary']['email']
        org.secondary_user = json_data['secondary']['email']
        model_user.organization.append(org)
        db.session.add(model_user)
        try:
            try:
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()

            # Secondary User
            sec_user = Users(json_data['secondary'],
                             confirmed=False,
                             token=token,
                             user_type=user_type,
                             user_group=user_group)
            addr = Address(json_data['secondary']['address'])
            # sar = Sar(json_data['sar'])
            # model_user.sar.append(sar)
            sec_user.address.append(addr)
            try:
                db.session.add(sec_user)
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()
            confirm_url = url_for('user.confirm_email',
                                  token=token,
                                  _external=True)
            html = render_template(
                'verification-email.html',
                confirm_url=confirm_url,
                name=json_data['primary']['name'],
                company=current_app.config['DEFAULT_COMPANY_NAME'])
            subject = "Please confirm your email"
            sendMail(subject, json_data['primary']['email'], html)
            # send_mail.send_email(json_data['email'], subject, html)

            moodle_user = {
                "auth": "manual",
                "confirmed": 1,
                "policyagreed": 0,
                "deleted": 0,
                "suspended": 0,
                "mnethostid": 1,
                "username": json_data['primary']['email'],
                "password": model_user.password,
                "firstname": json_data['primary']['name'],
                "lastname": 'User',
                "email": json_data['primary']['email'],
                "emailstop": 0,
                "city": json_data['primary']['address']['city'],
                "country": json_data['primary']['address']['country'][:2],
                "lang": "en",
                "calendartype": "gregorian",
                "timezone": "99",
                "picture": 0,
                "descriptionformat": 1,
                "mailformat": 1,
                "maildigest": 0,
                "maildisplay": 1,
                "autosubscribe": 0,
                "trackforums": 0,
                "timecreated": 0,
                "trustbitmask": 0
            }
            logging.info('create external user added db data')
            model_data = MdlUser(moodle_user)
            try:
                db.session.add(model_data)
                db.session.commit()
            except (sqlalchemy.exc.SQLAlchemyError,
                    sqlalchemy.exc.DBAPIError) as e:
                db.session.rollback()
            logging.info('create admin post exiting')
            return wrapper.wrapper(None,
                                   "Administrator user created successfully",
                                   201), 201
        except (sqlalchemy.exc.SQLAlchemyError,
                sqlalchemy.exc.DBAPIError) as e:
            logging.info('create admin post exiting')
            return wrapper.wrapper(None, e.message, 500), 500

    if request.method == 'GET':
        logging.info('create admin get and db call')
        get_users = Users.query.all()
        logging.info('create admin get and db call success')
        all_users = []

        for user in get_users:
            for i in user.address.all():
                print("pincode-->", i.pincode)
            all_users.append(user)
        logging.info('create admin get and exiting')
        return wrapper.wrapper(to_json(all_users), "Getting all users",
                               200)  #(data,msg,status_code)