Example #1
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('name',
                            help='This field cannot be blank',
                            required=True)
        data = parser.parse_args()
        current_user = UserModel.find_by_name(data['name'])

        if not current_user:
            return {
                'message': 'User {} doesn\'t exist'.format(data['name'])
            }, 400

        user_part = UserModel.to_json(current_user)
        user_part['roles'] = list()
        user_part['keys'] = list()
        user_part['groups'] = list()

        useruserroles = UserUserRolesModel.by_user_id(current_user.id)
        for uur in useruserroles:
            role = UserRolesModel.by_id(uur.user_role_id)
            user_part['roles'].append(UserRolesModel.to_json(role))

        userkeys = UserKeysModel.by_user_id(current_user.id)
        for uk in userkeys:
            user_part['keys'].append(UserKeysModel.to_json(uk))

        usergroups = UserUserGroupsModel.by_user_id(current_user.id)
        for ug in usergroups:
            group = UserGroupsModel.by_id(ug.user_group_id)
            if group:
                user_part['groups'].append(UserGroupsModel.to_json(group))

        return user_part
Example #2
0
    def post(self):
        data = parser.parse_args()
        current_user = UserModel.find_by_name(data['name'])

        if not current_user:
            return {
                'message': 'User {} doesn\'t exist'.format(data['name'])
            }, 400

        if UserModel.verify_hash(data['password'], current_user.password):
            access_token = create_access_token(
                identity=data['name'],
                expires_delta=datetime.timedelta(hours=1))
            refresh_token = create_refresh_token(identity=data['name'])
            return {
                'message': 'Logged in as {}'.format(current_user.name),
                'user': current_user.name,
                'id': current_user.id,
                'email': current_user.email,
                'access_token': access_token,
                'refresh_token': refresh_token
            }, 200, {
                'jwt-token': access_token
            }
        else:
            return {'message': 'Wrong credentials'}, 401
Example #3
0
    def get(self, id):
        userkey = UserKeysModel.by_id(id)

        userkeys_part = UserKeysModel.to_json(userkey)

        user = UserModel.by_id(userkey.user_id)
        userkeys_part['user'] = UserModel.to_json(user)

        return userkeys_part
Example #4
0
    def get(self, name):
        userrole = UserRolesModel.by_name(name)

        userroles_part = UserRolesModel.to_json(userrole)

        useruserroles = UserUserRolesModel.by_user_role_id(userrole.id)
        userroles_part['users'] = []
        for uur in useruserroles:
            user = UserModel.by_id(uur.user_id)
            userroles_part['users'].append(UserModel.to_json(user))

        return userroles_part
Example #5
0
    def get(self, id):
        session = SessionsModel.by_id(id)

        sessions_part = SessionsModel.to_json(session)

        host = HostsModel.by_id(session.host_id)
        sessions_part['host'] = HostsModel.to_json(host) if host else None

        user = UserModel.by_id(session.user_id)
        sessions_part['user'] = UserModel.to_json(user) if user else None

        return sessions_part
Example #6
0
    def get(self):
        userkeys_json = []
        userkeys = UserKeysModel.return_all()

        for userkey in userkeys:
            userkeys_part = UserKeysModel.to_json(userkey)

            user = UserModel.by_id(userkey.user_id)
            userkeys_part['user'] = UserModel.to_json(user)

            userkeys_json.append(userkeys_part)

        return userkeys_json
Example #7
0
    def get(self):
        userroles_json = []
        userroles = UserRolesModel.return_all()

        for userrole in userroles:
            userroles_part = UserRolesModel.to_json(userrole)

            useruserroles = UserUserRolesModel.by_user_role_id(userrole.id)
            userroles_part['users'] = []
            for uur in useruserroles:
                user = UserModel.by_id(uur.user_id)
                userroles_part['users'].append(UserModel.to_json(user))

            userroles_json.append(userroles_part)

        return userroles_json
Example #8
0
    def get(self):
        sessions_json = []
        sessions = SessionsModel.return_all()

        for session in sessions:
            sessions_part = SessionsModel.to_json(session)

            host = HostsModel.by_id(session.host_id)
            sessions_part['host'] = HostsModel.to_json(host) if host else None

            user = UserModel.by_id(session.user_id)
            sessions_part['user'] = UserModel.to_json(user) if user else None

            sessions_json.append(sessions_part)

        return sessions_json
Example #9
0
def exists(user):
    if UserModel.find_by_name(user):
        print('User {} already exists'.format(user))
        sys.exit(0)
    else:
        print("User don't exsist")
        sys.exit(1)
Example #10
0
def register(user, password):
    userobj = UserModel.find_by_name(user)

    if not userobj:
        return 'User {} do not exists, create it via sshportal command line'.format(
            user)

    password = getpass('Please enter your password: '******'User {} updated'.format(user)
    except:
        return 'Something went wrong'
Example #11
0
    def get(self, name):
        usergroup = UserGroupsModel.by_name(name)

        usergroups_part = UserGroupsModel.to_json(usergroup)

        userusergroups = UserUserGroupsModel.by_user_group_id(usergroup.id)
        usergroups_part['users'] = []
        for uug in userusergroups:
            user = UserModel.by_id(uug.user_id)
            usergroups_part['users'].append(UserModel.to_json(user))

        usergroupacls = UserGroupAclModel.by_user_group_id(usergroup.id)
        usergroups_part['acls'] = []
        for uga in usergroupacls:
            acl = AclsModel.by_id(uga.acl_id)
            usergroups_part['acls'].append(AclsModel.to_json(acl))

        return usergroups_part
Example #12
0
    def post(self):

        if request.remote_addr != '127.0.0.1':
            return {
                'message': "Your are'nt authorized to access this route"
            }, 401

        data = parser.parse_args()

        if UserModel.find_by_name(data['name']):
            return {'message': 'User {} already exists'.format(data['name'])}

        new_user = UserModel(name=data['name'],
                             password=UserModel.generate_hash(
                                 data['password']))

        try:
            new_user.save_to_db()
            access_token = create_access_token(
                identity=data['name'],
                expires_delta=datetime.timedelta(hours=1))
            refresh_token = create_refresh_token(identity=data['name'])
            return {
                'message': 'User {} was created'.format(data['name']),
                'access_token': access_token,
                'refresh_token': refresh_token
            }
        except:
            return {'message': 'Something went wrong'}, 500
Example #13
0
    def get(self):
        users = UserModel.return_all()
        groups = UserGroupsModel.return_all()
        roles = UserRolesModel.return_all()
        keys = SshKeysModel.return_all()
        userkeys = UserKeysModel.return_all()
        hosts = HostsModel.return_all()
        hostgroups = HostGroupsModel.return_all()
        acls = AclsModel.return_all()
        sessions = SessionsModel.return_all()
        events = EventsModel.return_all()

        return {
            'users': {
                'count': len(users['users'])
            },
            'usergroups': {
                'count': len(groups)
            },
            'userroles': {
                'count': len(roles)
            },
            'keys': {
                'count': len(keys)
            },
            'userkeys': {
                'count': len(userkeys)
            },
            'hosts': {
                'count': len(hosts),
                'keys': len(list(set([x.ssh_key_id for x in hosts])))
            },
            'hostgroups': {
                'count': len(hostgroups)
            },
            'acls': {
                'count': len(acls),
                'allow': len([x for x in acls if x.action == 'allow']),
            },
            'sessions': {
                'count': len(sessions),
                'active': len([s for s in sessions if s.status != 'closed']),
                'errors': len([s for s in sessions if s.err_msg != ''])
            },
            'events': {
                'count':
                len(events),
                'last_5':
                list(reversed([EventsModel.to_json(x) for x in events[-5:]]))
            }
        }
Example #14
0
 def get(self):
     return UserModel.return_all()