Ejemplo n.º 1
0
def register(request):
	if request.POST:
		form = SignUpForm(request.POST)
		if form.is_valid():
			profile = UserProfile()
			profile.create_user(request, form)
			graphic_content = []
		else:
			graphic_content = [get_singup_form(request), get_login_prompt()]
	else:
		graphic_content = [get_singup_form(request), get_login_prompt()]
	return render_to_response('sections/bootstrap-clean.html', locals(), context_instance=RequestContext(request))
Ejemplo n.º 2
0
def login(request):
	if request.POST:
		form = LogInForm(request.POST)
		if form.is_valid():
			profile = UserProfile()
			if profile.login_user(request, form):
				return HttpResponseRedirect('/')
			else:
				graphic_content = []
		else:
			graphic_content = [get_login_form(request), get_register_prompt()]
	else:
		graphic_content = [get_login_form(request), get_register_prompt()]
	return render_to_response('sections/bootstrap-clean.html', locals(), context_instance=RequestContext(request))
Ejemplo n.º 3
0
    def post_add(self):

        form = CreateUserForm(self.request.arguments)

        if form.validate():

            user = self.db2.query(User).filter_by(
                username=form.username.data).all()
            if user:
                form.username.errors.append(_('This username is occupied'))
            else:
                salt = md5(str(random.random())).hexdigest()[:12]
                hsh = encrypt_password(salt, form.password.data)
                enc_password = "******" % (salt, hsh)

                newuser = User(username=form.username.data,
                               password=enc_password)
                self.db2.add(newuser)
                self.db2.commit()
                # Create profile
                profile = UserProfile(newuser, email=form.email.data)
                self.db2.add(profile)
                self.db2.commit()

                url = self.application.reverse_url('admin:user')
                url += '?id=%s&action=view' % newuser.id
                return self.redirect(url)

        # Have a error
        self.render('admin/user/add.html', form=form)
Ejemplo n.º 4
0
    def post(self):

        form = CreateUserForm(self)

        if form.validate():

            user = self.db.query(User).filter_by(
                username=form.username.data).first()

            if user:
                form.username.errors.append(_('This username is occupied'))
            else:
                enc_password = enc_login_passwd(form.password.data)

                new = User(username=form.username.data, password=enc_password)
                self.db.add(new)
                self.db.commit()

                new.init_account(self.db)

                profile = UserProfile(new)
                self.db.add(profile)
                self.db.commit()

                url = self.reverse_url('admin:user:view')
                url += '?id=%s' % new.id
                return self.redirect(url)

        self.render(form=form)
Ejemplo n.º 5
0
    def post_registration(self):

        form = self.d['form']

        if form.validate():
            old = self.db.query(User).filter_by(username=form.username.data).count()
            if old:
                form.username.errors.append( _('Username is occupied.'))
            else:
                encpass = enc_login_passwd(form.password.data)
                new = User( username = form.username.data,
                            password = encpass,
                            language = self.language )
                new.email_valid = True
                new.email = self.exist_key.email
                self.db.add(new)
                self.db.delete(self.exist_key)
                self.db.commit()

                # TODO: drop account relationships
                profile = UserProfile( new )
                self.db.add(profile)
                self.db.commit()

                new.init_account(self.db)

                self.save_session(new.id)
                return self.redirect('/')

        self.render(self.template, **self.d)
Ejemplo n.º 6
0
    def post(self):

        form = RegistrationForm(self)

        if form.validate():

            user = self.db2.query(User).filter_by( username=form.username.data ).all()

            if user:
                form.username.errors.append( self.trans(_('This username is occupied')) )
            else:
                enc_password = enc_login_passwd(form.password.data)
                newuser = User( username = form.username.data,
                                password = enc_password )
                self.db2.add(newuser)
                self.db2.commit()
                # Create profile
                profile = UserProfile(newuser, email = form.email.data)
                root_passwd = enc_shadow_passwd(form.password.data)
                profile.set_secret('root_shadow_passwd', root_passwd)
                # Add to default group
                from settings import cf
                if cf.has_option('registration', 'user_default_group_id'):
                    try:
                        DGID = int(cf.get('registration', 'user_default_group_id'))
                        G = self.db2.query(Group).get(DGID)
                        newuser.groups = [G]
                        self.db2.commit()
                    except:
                        pass

                self.db2.add(profile)
                self.db2.commit()

                # send_message
                self.send_message( newuser )

                # send_mail()

                self.save_session(newuser.id)

                return self.redirect( self.reverse_url('account:index') )

        # Have a error
        self.render( 'account/register.html', form = form )
Ejemplo n.º 7
0
def init_account(user, db):

    from app.site.utils import get_site_config_int
    from app.resource.models import Resource
    from app.auth.models import Group
    from app.site.models import SiteConfig
    from app.account.models import UserProfile

    logging.debug('Init account "%s".' % user.username)

    now = datetime.datetime.now()
    expired_date = now + datetime.timedelta(seconds=365 * 3600 * 24)

    # default resource
    cpu = get_site_config_int('user.default.dynamic_cpu', 0)
    memory = get_site_config_int('user.default.dynamic_memory', 0)
    storage = get_site_config_int('user.default.dynamic_storage', 0)
    instance = get_site_config_int('user.default.dynamic_instance', 0)

    for t, s in [(Resource.T_CPU, cpu), (Resource.T_MEMORY, memory),
                 (Resource.T_STORAGE, storage),
                 (Resource.T_INSTANCE, instance)]:

        print 's = "%s"' % s
        if not s: continue

        r = Resource(user=user,
                     rtype=t,
                     size=s,
                     effect_date=now,
                     expired_date=expired_date)

        db.add(r)

    # default profile
    profile = db.query(UserProfile).filter_by(user_id=user.id).first()

    if not profile:
        # create user profile
        profile = UserProfile(user)
        db.add(profile)
        db.commit()

    language_id = SiteConfig.get(db, 'user.default.language', 61)
    user.language_id = language_id

    # default group
    gid = SiteConfig.get(db, 'user.default.group', 2)
    g = db.query(Group).get(gid)
    if g:
        user.groups = [g]

    db.commit()
Ejemplo n.º 8
0
    def post(self):

        form = RegistrationForm(self.request.arguments)

        if form.validate():

            user = self.db2.query(User).filter_by( username=form.username.data ).all()

            if user:
                form.username.errors.append( _('This username is occupied') )
            else:
                salt = md5(str(random.random())).hexdigest()[:12]
                hsh = encrypt_password(salt, form.password.data)
                enc_password = "******" % (salt, hsh)

                newuser = User( username = form.username.data,
                                password = enc_password )
                self.db2.add(newuser)
                self.db2.commit()
                # Create profile
                profile = UserProfile(newuser, email = form.email.data)
                # Add to default group
                from settings import cf
                if cf.has_option('registration', 'user_default_group_id'):
                    try:
                        DGID = int(cf.get('registration', 'user_default_group_id'))
                        G = self.db2.query(Group).get(DGID)
                        newuser.groups = [G]
                        self.db2.commit()
                    except:
                        pass

                self.db2.add(profile)
                self.db2.commit()

                # send_message
                self.send_message( newuser )

                # send_mail()

                self.save_session(newuser.id)

                return self.redirect( self.reverse_url('account:index') )

        # Have a error
        self.render( 'account/register.html', form = form )
Ejemplo n.º 9
0
    def get_edit_resources(self):

        form = UserResourceForm()
        # TODO: a temp hack
        if not self.user.profile:
            # Create profile
            from app.account.models import UserProfile
            profile = UserProfile(self.user,
                                  email='*****@*****.**' % self.user.id)
            self.db2.add(profile)
            self.db2.commit()
        form.memory.data = self.user.profile.memory
        form.cpus.data = self.user.profile.cpus
        form.instances.data = self.user.profile.instances
        form.storage.data = self.user.profile.storage

        self.render('admin/user/edit_resources.html',
                    title=_('Edit User %s') % self.user.username,
                    form=form,
                    USER=self.user)
Ejemplo n.º 10
0
def update_user(db):

    # User
    for username, password in settings.default_user:
        u = db.query(User).filter_by(username=username).first()
        if u:
            print '[W] user exist: %s' % username
        else:
            enc_password = enc_login_passwd(password)
            u = User(username=username, password=enc_password)
            db.add(u)

    db.commit()

    # Profile
    for user in db.query(User).order_by(User.id):

        if user.profile:
            p = user.profile
            if not p.cpu: p.cpu = 1
            if not p.memory: p.memory = 256
            if not p.storage: p.storage = 2
            if not p.instance: p.instance = 3
            if not p.bandwidth: p.bandwidth = 0
            if not p.rx: p.rx = 2000
            if not p.tx: p.tx = 2000
            if not p.port: p.port = 6
            if not p.vlan: p.vlan = 1
            if not p.domain: p.domain = 6

        else:
            profile = UserProfile(user)
            db.add(profile)
            print '[D] add profile for %s' % user.username

    db.commit()
Ejemplo n.º 11
0
def default_value(dbsession):

    # LuoYunConfig
    from app.system.models import LuoYunConfig
    for k, v in settings.luoyun_system_config:
        c = dbsession.query(LuoYunConfig).filter_by(key=k).first()
        if c:
            print '[W] config key exist: %s' % k
        else:
            nc = LuoYunConfig(key=k, value=v)
            dbsession.add(nc)

    # Permission
    from app.account.models import Permission
    for codename, name in settings.default_permission:
        p = dbsession.query(Permission).filter_by(codename=codename).first()
        if p:
            print '[W] permission codename exist: %s' % codename
        else:
            p = Permission(codename=codename, name=name)
            dbsession.add(p)

    # Group
    from app.account.models import Group
    for name in settings.default_group:
        g = dbsession.query(Group).filter_by(name=name).first()
        if g:
            print '[W] group exist: %s' % name
        else:
            # Group created defaultly is locked.
            g = Group(name=name, islocked=True)
            dbsession.add(g)

    # User
    from app.account.models import User
    for username, password in settings.default_user:
        u = dbsession.query(User).filter_by(username=username).first()
        if u:
            print '[W] user exist: %s' % username
        else:
            salt = md5(str(random.random())).hexdigest()[:12]
            hsh = encrypt_password(salt, password)
            enc_password = "******" % (salt, hsh)
            u = User(username=username, password=enc_password)
            dbsession.add(u)
            dbsession.commit()

        if not u.profile:
            from app.account.models import UserProfile
            profile = UserProfile(u, email='%s@localhost' % u.username)
            dbsession.add(profile)

    # User Group
    for groupname, username in settings.default_user_group:
        u = dbsession.query(User).filter_by(username=username).first()
        g = dbsession.query(Group).filter_by(name=groupname).first()
        if u and (g not in u.groups):
            u.groups.append(g)

    # User Permission
    for username, codename in settings.default_user_permission:
        u = dbsession.query(User).filter_by(username=username).first()
        p = dbsession.query(Permission).filter_by(codename=codename).first()
        if p not in u.permissions:
            u.permissions.append(p)

    # Group Permission
    for groupname, codename in settings.default_group_permission:
        g = dbsession.query(Group).filter_by(name=groupname).first()
        p = dbsession.query(Permission).filter_by(codename=codename).first()
        if p not in g.permissions:
            g.permissions.append(p)

    # Appliance Catalog
    from app.appliance.models import ApplianceCatalog
    for name, summary in settings.default_appliance_catalog:
        c = dbsession.query(ApplianceCatalog).filter_by(name=name).first()
        if c:
            print '[W] appliance catalog exist: %s' % name
        else:
            c = ApplianceCatalog(name=name, summary=summary)
            dbsession.add(c)
            dbsession.commit()

    # Wiki Catalog
    from app.wiki.models import WikiCatalog
    for name, summary in settings.default_wiki_catalog:
        c = dbsession.query(WikiCatalog).filter_by(name=name).first()
        if c:
            print '[W] wiki catalog exist: %s' % name
        else:
            c = WikiCatalog(name=name, summary=summary)
            dbsession.add(c)
            dbsession.commit()

    dbsession.commit()