示例#1
0
def createTestingAccounts(
    session,
    count,
    name_pattern='test%s',
    email_pattern='*****@*****.**',
    password='******',
):
    """Creating many testing accounts

    """
    from nowin_core.models.user import UserModel
    user_model = UserModel(session)
    users = []
    for i in xrange(count):
        name = name_pattern % i
        email = email_pattern % i
        user = user_model.get_user_by_name(name)
        if user is not None:
            print 'user %s already exist, skip'
            continue
        user_id = user_model.create_user(user_name=name,
                                         email=email,
                                         display_name=name,
                                         password=password)
        user_model.activate_user(user_id, name, 'TW')
        users.append(user_id)
        session.flush()
        print 'create user', name
    session.commit()
    return users
示例#2
0
    def run(self):
        engine = setup_db(uri=self.uri, echo=True)

        from nowin_core.database.tables import DeclarativeBase
        DeclarativeBase.metadata.create_all(bind=engine)

        import getpass
        import transaction
        from ..database import tables
        from ..models.user import UserModel
        from ..models.group import GroupModel
        from ..models.permission import PermissionModel

        session = tables.DBSession

        from zope.sqlalchemy import ZopeTransactionExtension
        session.configure(extension=ZopeTransactionExtension())

        user_model = UserModel(session)
        group_model = GroupModel(session)
        permission_model = PermissionModel(session)

        with transaction.manager:
            admin = user_model.get_user_by_name('admin')
            if admin is None:
                print 'Create admin account'

                email = raw_input('Email:')

                password = getpass.getpass('Password:'******'Confirm:')
                if password != confirm:
                    print 'Password not match'
                    return

                user_id = user_model.create_user(
                    user_name='admin',
                    display_name='Administrator',
                    email=email,
                    password=password
                )
                user_model.activate_user(user_id, '', 'TW')
                admin = user_model.get_user_by_id(user_id)
                session.flush()
                print 'Created admin, user_id=%s' % admin.user_id

            permission = permission_model.get_permission_by_name('admin')
            if permission is None:
                print 'Create admin permission ...'
                permission_model.create_permission(
                    permission_name='admin',
                    description='Administrate',
                )
                permission = permission_model.get_permission_by_name('admin')

            group = group_model.get_group_by_name('admin')
            if group is None:
                print 'Create admin group ...'
                group_model.create_group(
                    group_name='admin',
                    display_name='Administrators',
                )
                group = group_model.get_group_by_name('admin')

            print 'Add admin permission to admin group'
            group_model.update_permissions(
                group.group_id, [permission.permission_id])
            session.flush()

            print 'Add admin to admin group'
            user_model.update_groups(admin.user_id, [group.group_id])
            session.flush()

        print 'Done.'