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))
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))
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)
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)
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)
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 )
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()
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 )
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)
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()
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()