def register(): params = request.get_json() mobile = params.get('mobile') email = params.get('email') nickname = params.get('nickname') sex = params.get('sex') password = params.get('password') if not (email and password): return JSONResponse.error('email and password must be provided') else: user = User.query.filter_by(email=email).first() if user: return JSONResponse.error('username has already registered!') user = User( mobile=mobile, email=email, nickname=nickname, sex=sex, password=generate_password_hash(password) ) user.save() return JSONResponse.success()
def handle(self, *args, **options): path = options['path'][0] list_multiple = [] list_doesnt_exist = [] with open(path, 'r') as csvfile: spamreader = csv.reader(csvfile, delimiter=' ') list_wrong_date = [] for row in spamreader: full_name = row[0] full_name_list = full_name.split(" ") first_name = full_name_list[0].lower() last_name = ' '.join(full_name_list[1:]).lower() username = row[1].split("@")[0].lower() if username == 'contato': username = first_name + last_name.split(" ")[0] email = row[1].lower() password = '******' user = User(first_name=first_name, last_name=last_name, username=username, email=email, password=password) user.save()
def login(): code = request.values.get("code") if code is None: # Authorize the client from SSO, redirect as a query with "code" sl = "?".join([config.sso_params.get("cootek.authorize"), urlencode(config.authorize_params)]) return redirect(sl) else: config.token_params.update({"code": code}) ret = requests.post(config.sso_params.get("cootek.token"), data=config.token_params) token = json.loads(ret.text) if "access_token" in token and "id_token" in token: # Analyse username from id_token user_info = token['id_token'].split(".")[1] missing_padding = 4 - len(user_info) % 4 if missing_padding: user_info += '=' * missing_padding temp_user_info = base64.b64decode(user_info) user_info = json.loads(bytes.decode(temp_user_info)) username = user_info['upn'].split("@")[0] sid = user_info['sid'].split("@")[0] token = uuid.uuid4().hex user = User.query.filter_by(username=username).first() if not user: user = User() user.username = username user.access_token = token user.token_expired = time.time() + 8 * 60 * 60 user.save() login_user(user) return app.send_static_file('index.html') else: sl = "?".join([config.sso_params.get("cootek.authorize"), urlencode(config.authorize_params)]) return redirect(sl)
def create(self, validated_data): profile_data = validated_data.pop('profile') password = validated_data.pop('password') user = User(**validated_data) user.set_password(password) user.save() UserProfile.objects.create(user=user, **profile_data) return user
def post(): form, error = JsonParser('nickname', 'username', 'password', Argument('role_id', type=int, help='请选择角色'), Argument('email', nullable=True), Argument('mobile', nullable=True)).parse() if error is None: username_is_exist = User.query.filter_by(username=form.username).first() if username_is_exist: return json_response(message="用户名已存在") User(**form).save() return json_response() return json_response(message=error)
def post(self): args = self.parser.parse_args() username = args.get('username') password = args.get('password') if username and password: try: user = User() user.username = username user.password = password db.session.add(user) db.session.commit() except: db.session.rollback()
def register(): if request.method == 'GET': return render_template('register.html') else: username = request.values.get('username') password = request.values.get('password') user = User.query.filter(User.username == username).first() if user: return render_template('register.html', msg='用户存在,请重新注册') else: user = User(username=username) user.password = password db.session.add(user) db.session.commit() return render_template('register.html', msg='注册成功')
def createsuperuser(username, password): if not all([username, password]): print("参数不足,请指定用户名和密码") from apps.account.models import User user = User() user.nick_name = username user.mobile = username user.password = password user.is_admin = True try: db.session.add(user) db.session.commit() except Exception as e: db.session.rollback() print(e) return "添加成功"
def create_admin(): from apps.account.models import User admin = User.query.filter_by(is_supper=True).first() if admin: user_input = input('已存在管理员账户 <%s>,需要重置密码[y|n]?' % admin.username) if user_input.strip() == 'y': password = check_input_password(getpass('请输入新的管理员账户密码:')) admin.password = password admin.token_expired = 0 admin.save() print('重置管理员密码成功!') else: username = check_input_username(input('请输入管理员账户登录名:')) password = check_input_password(getpass('请输入管理员账户密码:')) User(username=username, password=password, nickname='管理员', is_supper=True).save() print('创建管理员账户成功!')
def handle(self, *args, **options): # https://pypi.org/project/names/ User.objects.exclude(is_superuser=True).delete() result = [] cities = [] for name in ('Kiev', 'Odessa', 'Lviv', 'Dnipro'): city, _ = City.objects.get_or_create(name=name) cities.append(city) for i in range(10_000): username = str(uuid4()) user = User( username=username, email=username + '@example.com', age=random.randint(12, 100), salary=random.randint(100, 1000), city=random.choice(cities), ) result.append(user)
def handle(self, *args, **options): User.objects.exclude(username='******').delete() result = [] # fill list cities = [] for name in ('Kiev', 'Odessa', 'Lviv', 'Dnipro'): city, _ = City.objects.get_or_create(name=name) cities.append(city) for i in range(10_000): a = str(i) username = names.get_first_name() + a user = User( username=username, email=username + '@example.com', age=random.randint(18, 65), first_name=names.get_first_name(), last_name=names.get_last_name(), city=random.choice(cities), ) result.append(user)
def create_user_by_parameters(parameters): """ Method for create a User model Object populated with a dict of parameters. :param parameters: Dict of values, this key are( first_name last_name username email password is_active ) :return: populated user """ user = User() user.first_name = parameters['first_name'] user.last_name = parameters['last_name'] user.username = parameters['username'] user.email = parameters['email'].lower() user.password = make_password(parameters['password']) user.is_active = parameters['is_active'] return user
def login(): form, error = JsonParser('username', 'password', 'type').parse() if error is None: if form.type == 'ldap': ldap_login = ldap.bind_user(form.username, form.password) if ldap_login: token = uuid.uuid4().hex # user = User.query.filter_by(username=form.username).filter_by(type='LDAP').first() user = User.query.filter_by(username=form.username).first() if not user: form.nickname = form.username form.type = 'LDAP' form.role_id = 1 form.is_supper = False is_supper = False nickname = form.username permissions = [] User(**form).save() else: user.access_token = token user.token_expired = time.time() + 80 * 60 * 6000 is_supper = user.is_supper, nickname = user.nickname, permissions = list(user.permissions) user.save() return json_response({ 'token': token, 'is_supper': is_supper, 'nickname': nickname, 'permissions': permissions }) else: return json_response(message='用户名或密码错误,确认输入的是LDAP的账号密码?') else: user = User.query.filter_by(username=form.username).filter_by( type='系统用户').first() if user: if user.is_active: if user.verify_password(form.password): login_limit.pop(form.username, None) token = uuid.uuid4().hex user.access_token = token user.token_expired = time.time() + 80 * 60 * 6000 user.save() return json_response({ 'token': token, 'is_supper': user.is_supper, 'nickname': user.nickname, 'permissions': list(user.permissions) }) else: login_limit[form.username] += 1 if login_limit[form.username] >= 3: user.update(is_active=False) return json_response(message='用户名或密码错误,连续3次错误将会被禁用') else: return json_response(message='用户已被禁用,请联系管理员') elif login_limit[form.username] >= 3: return json_response(message='用户已被禁用,请联系管理员') else: login_limit[form.username] += 1 return json_response(message='用户名不存在,请确认用户名')
def staffs(request): staff = Staff.objects.filter(school_id=request.user.school_id) head = None try: head = User.objects.get(user_type='SH', school_id=request.user.school_id) except User.DoesNotExist: pass context = { 'object_list': staff, 'head': head, 'errors': '' } if request.method == 'POST': form = request.POST.get('form') if form == 'head': fname = request.POST.get('first_name') lname = request.POST.get('last_name') mname = request.POST.get('middle_name') email = request.POST.get('email') try: User.objects.get(username=email, school_id=request.user.school_id) context['errors'] = 'This email already exist' return render(request, 'staff/index.html', context) except User.DoesNotExist:pass uc = User.objects.filter(school_id=request.user.school_id).count() + 1 uc = '{0:04}'.format(uc) inst = School.objects.get(school_id=request.user.school_id) user = User( username=email, email=email, first_name=fname, middle_name=mname, last_name=lname, slug="-".join((slugify(fname), slugify(lname))), user_type='SH', account_id=account_id(inst.name, fname, lname, uc), school_id=request.user.school_id ) user.set_password('password') mystaff = Staff( staff_type='SH', first_name=fname, middle_name=mname, last_name=lname, created_by=request.user, slug="-".join((slugify(fname), slugify(lname))), account_activated=True, school_id=request.user.school_id, ) user.save() mystaff.save() return redirect('staff:list') elif form == 'activate': staff_id = request.POST.get('staff') staff_obj = Staff.objects.get(id=staff_id) email = request.POST.get('email') try: User.objects.get(username=email, school_id=staff_obj.school_id) context['errors'] = 'This email already exist' return render(request, 'staff/index.html', context) except User.DoesNotExist:pass uc = User.objects.filter(school_id=request.user.school_id).count() + 1 uc = '{0:04}'.format(uc) inst = School.objects.get(school_id=request.user.school_id) user = User( username=email, email=email, first_name=staff_obj.first_name, middle_name=staff_obj.middle_name, last_name=staff_obj.last_name, slug="-".join((slugify(staff_obj.first_name), slugify(staff_obj.last_name))), user_type=staff_obj.staff_type, account_id=account_id(inst.name, staff_obj.first_name, staff_obj.last_name, uc), school_id=request.user.school_id, profile=staff_obj.profile ) user.set_password('password') staff_obj.account_activated = True user.save() staff_obj.user = user staff_obj.save() return redirect('staff:list') return render(request, 'staff/index.html', context)
import apps.configuration.models import apps.deploy.models import apps.assets.models import apps.schedule.models import apps.setting.models # init database db.drop_all() db.create_all() with open(os.path.join(BASE_DIR, 'libs', 'sql', 'permissions.sql'), 'r') as f: line = f.readline() while line: if line.startswith('INSERT INTO'): db.engine.execute(line.strip()) line = f.readline() # create default admin username = '******' password = '******' User(username=username, password=password, nickname='Administrator', is_supper=True).save() print('*' * 80) print('Database name: ' + (os.getenv('MYSQL_DATABASE') or 'spug')) print('Database username: '******'MYSQL_USER') or 'spuguser')) print('Database password: '******'MYSQL_PASSWORD') or 'spugpwd')) print('Login web site account: %s %s' % (username, password)) print('*' * 80)
def signup_school(request): # ss1 = None try: ss1 = request.session['ss1'] except: return redirect(reverse_lazy('account:register-user')) context = {'errors': '', 'ss1': ss1} if request.method == 'POST': name = request.POST.get('institution', None) logo = request.FILES.get('logo', None) phone_number = request.POST.get('phone_number', None) domain = request.POST.get('domain', None) gps = request.POST.get('gps', None) try: School.objects.get(domain=domain) context[ 'errors'] = "There's already a school with this domain registered" return render(request, 'account/signup2.html', context, status=400) except School.DoesNotExist: pass try: User.objects.get(username=ss1['email']) context['errors'] = "This email has already been registered" return render(request, 'account/signup2.html', context) except User.DoesNotExist: pass inst_count = School.objects.count() + 1 inst_count = '{0:04}'.format(inst_count) user_count = User.objects.filter( school_id=institution_id(name, inst_count)).count() + 1 user_count = '{0:04}'.format(user_count) user = User( username=ss1['email'], email=ss1['email'], first_name=ss1['first_name'], middle_name=ss1['middle_name'], last_name=ss1['last_name'], slug="-".join( (slugify(ss1['first_name']), slugify(ss1['last_name']))), user_type='SAD', account_id=account_id(name, ss1['first_name'], ss1['last_name'], user_count), school_id=institution_id(name, inst_count), ) user.set_password(ss1['password']) school = School( name=name, logo=logo, gps_address=gps, phone_number=phone_number, slug=slugify(name), created_by=user, domain=domain, school_id=institution_id(name, inst_count), ) user.save() school.save() request.session['ss1'] = {} return redirect('login') return render(request, 'account/signup2.html', context)
def post(self, request, *args, **kwargs): email = request.data.get('email', None) first_name = request.data.get('first_name', None) middle_name = request.data.get('middle_name', None) last_name = request.data.get('last_name', None) password = request.data.get('password', None) name = request.data.get('institution', None) logo = request.data.get('logo', None) phone_number = request.data.get('phone_number', None) domain = request.data.get('domain', None) gps = request.data.get('gps', None) try: User.objects.get(username=email) return Response({'detail': 'Email already exist'}, status=HTTP_400_BAD_REQUEST) except User.DoesNotExist: pass try: School.objects.get(domain=domain) return Response( { 'detail': "There's already a school with this domain registered" }, status=HTTP_400_BAD_REQUEST) except School.DoesNotExist: pass inst_count = School.objects.count() inst_count = '{0:04}'.format(inst_count) user_count = User.objects.filter( school_id=institution_id(name, inst_count)).count() user_count = '{0:04}'.format(user_count) user = User( username=email, email=email, first_name=first_name, middle_name=middle_name, last_name=last_name, slug="-".join((slugify(first_name), slugify(last_name))), user_type='SAD', account_id=account_id(name, first_name, last_name, user_count), school_id=institution_id(name, inst_count), ) user.set_password(password) school = School( name=name, logo=logo, gps_address=gps, phone_number=phone_number, slug=slugify(name), created_by=user, domain=domain, school_id=institution_id(name, inst_count), ) user.save() school.save() user = UserSerializer(user, context={'request': request}) school = SchoolSerializer(school, context={'request': request}) return Response({ 'user': user.data, 'institution': school.data }, status=HTTP_201_CREATED)
def register(): user = User(username='******') user.password = '******' db.session.add(user) db.session.commit() return '注册成功'