def createuser(email, password, superuser, no_password, no_input): "Create a new user." if not no_input: if not email: email = _get_email() if not (password or no_password): password = _get_password() if superuser is None: superuser = _get_superuser() if superuser is None: superuser = False if not email: raise click.ClickException("Invalid or missing email address.") # TODO(mattrobenolt): Accept password over stdin? if not no_password and not password: raise click.ClickException( "No password set and --no-password not passed.") from sentry import roles from sentry.models import User from django.conf import settings user = User(email=email, username=email, is_superuser=superuser, is_staff=superuser, is_active=True) if password: user.set_password(password) user.save() click.echo("User created: %s" % (email, )) # TODO(dcramer): kill this when we improve flows if settings.SENTRY_SINGLE_ORGANIZATION: from sentry.models import Organization, OrganizationMember, OrganizationMemberTeam, Team org = Organization.get_default() if superuser: role = roles.get_top_dog().id else: role = org.default_role member = OrganizationMember.objects.create(organization=org, user=user, role=role) # if we've only got a single team let's go ahead and give # access to that team as its likely the desired outcome teams = list(Team.objects.filter(organization=org)[0:2]) if len(teams) == 1: OrganizationMemberTeam.objects.create(team=teams[0], organizationmember=member) click.echo("Added to organization: %s" % (org.slug, ))
def clean(self, value): value = super(CorpEmailField, self).clean(value) if not value: return None # valid corp email value = value.lower() if value.endswith('@corp.netease.com') or value.endswith( '@mesg.corp.netease.com'): # valid ok user_add = User.objects.filter(username__iexact=value) if user_add.exists(): # user exist user_add = user_add[0] user_add.set_password("sentry_netease_openid_pwd") else: # user not exist, save to db user_add = User(username=value, name=value, email=value) user_add.set_password("sentry_netease_openid_pwd") user_add.save() #save to db return user_add else: # invalid user, give the tip raise ValidationError( _('Invalid Corp Email, must end with @corp.netease.com or @mesg.corp.netease.com' ))
def openid_login_callback(request): #构造需要检查签名的内容 OPENID_RESPONSE = dict(request.GET) SIGNED_CONTENT = [] #import json #print json.dumps(OPENID_RESPONSE, indent=4) for k in OPENID_RESPONSE['openid.signed'][0].split(","): response_data = OPENID_RESPONSE["openid.%s" % k] SIGNED_CONTENT.append("%s:%s\n" % (k, response_data[0])) SIGNED_CONTENT = "".join(SIGNED_CONTENT).encode("UTF-8") # 使用associate请求获得的mac_key与SIGNED_CONTENT进行assoc_type hash, # 检查是否与OpenID Server返回的一致 SIGNED_CONTENT_SIG = base64.b64encode( hmac.new(base64.b64decode(request.session.get('mac_key', '')), SIGNED_CONTENT, hashlib.sha256).digest()) if SIGNED_CONTENT_SIG != OPENID_RESPONSE['openid.sig'][0]: return '认证失败,请重新登录验证' request.session.pop('mac_key', None) email = request.GET.get('openid.sreg.email', '') fullname = request.GET.get('openid.sreg.fullname', '') next_url = request.GET.get('next', '/') login_user = User.objects.filter(username__iexact=email) if login_user.exists(): login_user = login_user[0] login_user.set_password("sentry_netease_openid_pwd") login_user.name = fullname # update by hzwangzhiwei @20160329 login_user.save() else: #不存在数据,则增加数据数用户表 login_user = User(username=email, name=fullname, email=email) login_user.set_password("sentry_netease_openid_pwd") login_user.save() #save to db # 如果不存在将这个人加入到组织member表中 if not OrganizationMember.objects.filter( user=login_user, organization=Organization.get_default()).exists(): # 同时给他们默认的trace收集 # 将用户到组织中 orgMember = OrganizationMember(user=login_user, organization=Organization.get_default()) orgMember.save() orgMember = OrganizationMember.objects.get( user=login_user, organization=Organization.get_default()) # 保存组织者到第一个小组 orgMemTeam = OrganizationMemberTeam(organizationmember=orgMember, team=Team.objects.get(id=1)) orgMemTeam.save() # HACK: grab whatever the first backend is and assume it works login_user.backend = settings.AUTHENTICATION_BACKENDS[0] auth.login(request, login_user) # can_register should only allow a single registration request.session.pop('can_register', None) request.session.pop('needs_captcha', None) return HttpResponseRedirect(next_url)
def user(self): user = User(username="******", email="admin@localhost", is_staff=True, is_superuser=True) user.set_password('admin') user.save() return user
def owner(self): user = User(username="******", email="owner@localhost") user.set_password('owner') user.save() Team.objects.create(owner=user, name='foo', slug='foo') return user
def createuser(email, password, superuser, no_password, no_input): "Create a new user." if not no_input: if not email: email = _get_email() if not (password or no_password): password = _get_password() if superuser is None: superuser = _get_superuser() if superuser is None: superuser = False if not email: raise click.ClickException('Invalid or missing email address.') # TODO(mattrobenolt): Accept password over stdin? if not no_password and not password: raise click.ClickException( 'No password set and --no-password not passed.') from sentry import roles from sentry.models import User from django.conf import settings user = User( email=email, username=email, is_superuser=superuser, is_staff=superuser, is_active=True, ) if password: user.set_password(password) user.save() click.echo('User created: %s' % (email, )) # TODO(dcramer): kill this when we improve flows if settings.SENTRY_SINGLE_ORGANIZATION: from sentry.models import Organization, OrganizationMember org = Organization.get_default() if superuser: role = roles.get_top_dog().id else: role = org.default_role OrganizationMember.objects.create( organization=org, user=user, role=role, ) click.echo('Added to organization: %s' % (org.slug, ))
def create_user(self, email, **kwargs): kwargs.setdefault("username", email) kwargs.setdefault("is_staff", True) kwargs.setdefault("is_superuser", True) user = User(email=email, **kwargs) user.set_password("admin") user.save() return user
def create_user(self, email, **kwargs): kwargs.setdefault('username', email) kwargs.setdefault('is_staff', True) kwargs.setdefault('is_superuser', True) user = User(email=email, **kwargs) user.set_password('admin') user.save() return user
def createuser(email, password, superuser, no_password, no_input): "Create a new user." if not no_input: if not email: email = _get_email() if not (password or no_password): password = _get_password() if superuser is None: superuser = _get_superuser() if superuser is None: superuser = False if not email: raise click.ClickException('Invalid or missing email address.') # TODO(mattrobenolt): Accept password over stdin? if not no_password and not password: raise click.ClickException('No password set and --no-password not passed.') from sentry import roles from sentry.models import User from django.conf import settings user = User( email=email, username=email, is_superuser=superuser, is_staff=superuser, is_active=True, ) if password: user.set_password(password) user.save() click.echo('User created: %s' % (email,)) # TODO(dcramer): kill this when we improve flows if settings.SENTRY_SINGLE_ORGANIZATION: from sentry.models import Organization, OrganizationMember org = Organization.get_default() if superuser: role = roles.get_top_dog().id else: role = org.default_role OrganizationMember.objects.create( organization=org, user=user, role=role, ) click.echo('Added to organization: %s' % (org.slug,))
def sentry_create_user(username, password, admin=False): model = sentry_find_user(username) existing = model is not None if not existing: model = User() model.username = username model.is_superuser = admin model.set_password(password) model.save() return model, existing
def member(self): user = User(username="******", email="member@localhost") user.set_password('member') user.save() TeamMember.objects.create( user=user, team=self.team, type=MEMBER_USER, ) return user
def member(self): user = User(username="******", email="member@localhost") user.set_password('member') user.save() om = self.create_member( organization=self.team.organization, user=user, type=MEMBER_USER, teams=[self.team], ) return user
def member(self): user = User(username="******", email="member@localhost") user.set_password('member') user.save() om = OrganizationMember.objects.create( organization=self.team.organization, user=user, type=MEMBER_USER, ) om.teams.add(self.team) return user
def create_user(self, email=None, **kwargs): if not email: email = uuid4().hex + '@example.com' kwargs.setdefault('username', email) kwargs.setdefault('is_staff', True) kwargs.setdefault('is_superuser', False) user = User(email=email, **kwargs) user.set_password('admin') user.save() return user
def create_user(self, email=None, **kwargs): if not email: email = uuid4().hex + "@example.com" kwargs.setdefault("username", email) kwargs.setdefault("is_staff", True) kwargs.setdefault("is_superuser", False) user = User(email=email, **kwargs) user.set_password("admin") user.save() return user
def handle(self, **options): email = options['email'] is_superuser = options['is_superuser'] password = options['password'] if not options['noinput']: try: if not email: email = self.get_email() if not (password or options['nopassword']): password = self.get_password() if is_superuser is None: is_superuser = self.get_superuser() except KeyboardInterrupt: self.stderr.write("\nOperation cancelled.") sys.exit(1) if not email: raise CommandError('Invalid or missing email address') if not options['nopassword'] and not password: raise CommandError('No password set and --no-password not passed') user = User( email=email, username=email, is_superuser=is_superuser, is_staff=is_superuser, is_active=True, ) if password: user.set_password(password) user.save() self.stdout.write('User created: %s' % (email,)) # TODO(dcramer): kill this when we improve flows if settings.SENTRY_SINGLE_ORGANIZATION: org = Organization.objects.all()[0] OrganizationMember.objects.create( organization=org, user=user, type=OrganizationMemberType.OWNER, has_global_access=user.is_superuser, ) self.stdout.write('Added to organization: %s' % (org.slug,))
def handle(self, **options): email = options['email'] is_superuser = options['is_superuser'] password = None if not options['noinput']: try: if not email: email = self.get_email() if not options['nopassword']: password = self.get_password() if is_superuser is None: is_superuser = self.get_superuser() except KeyboardInterrupt: self.stderr.write("\nOperation cancelled.") sys.exit(1) if not email: raise CommandError('Invalid or missing email address') if not options['nopassword'] and not password: raise CommandError('No password set and --no-password not passed') user = User( email=email, username=email, is_superuser=is_superuser, is_staff=is_superuser, is_active=True, ) if password: user.set_password(password) user.save() self.stdout.write('User created: %s' % (email,)) # TODO(dcramer): kill this when we improve flows if settings.SENTRY_SINGLE_ORGANIZATION: org = Organization.objects.all()[0] OrganizationMember.objects.create( organization=org, user=user, type=OrganizationMemberType.OWNER, has_global_access=user.is_superuser, ) self.stdout.write('Added to organization: %s' % (org.slug,))
def create_user(email=None, **kwargs): if email is None: email = uuid4().hex + "@example.com" kwargs.setdefault("username", email) kwargs.setdefault("is_staff", True) kwargs.setdefault("is_active", True) kwargs.setdefault("is_superuser", False) user = User(email=email, **kwargs) if not kwargs.get("password"): user.set_password("admin") user.save() # UserEmail is created by a signal assert UserEmail.objects.filter(user=user, email=email).update(is_verified=True) return user
def create_user(self, email=None, **kwargs): if not email: email = uuid4().hex + '@example.com' kwargs.setdefault('username', email) kwargs.setdefault('is_staff', True) kwargs.setdefault('is_active', True) kwargs.setdefault('is_superuser', False) user = User(email=email, **kwargs) user.set_password('admin') user.save() # UserEmail is created by a signal UserEmail.objects.filter( user=user, email=email, ).update(is_verified=True) return user
def handle(self, **options): email = options['email'] is_superuser = options['is_superuser'] if not options['noinput']: try: if not email: email = self.get_email() if not options['nopassword']: password = self.get_password() if is_superuser is None: is_superuser = self.get_superuser() except KeyboardInterrupt: self.stderr.write("\nOperation cancelled.") sys.exit(1) else: password = None if not email: raise CommandError('Invalid or missing email address') if not options['nopassword'] and not password: raise CommandError('No password set and --no-password not passed') user = User( email=email, username=email, is_superuser=is_superuser, is_staff=is_superuser, is_active=True, ) if password: user.set_password(password) user.save() self.stdout.write('User created: %s' % (email,))
class EmailAuthBackendTest(TestCase): def setUp(self): self.user = User(username="******", email="*****@*****.**") self.user.set_password("bar") self.user.save() @property def backend(self): return EmailAuthBackend() def test_can_authenticate_with_username(self): result = self.backend.authenticate(username='******', password='******') self.assertEquals(result, self.user) def test_can_authenticate_with_email(self): result = self.backend.authenticate(username='******', password='******') self.assertEquals(result, self.user) def test_does_not_authenticate_with_invalid_password(self): result = self.backend.authenticate(username='******', password='******') self.assertEquals(result, None)
def handle(self, **options): email = options['email'] is_superuser = options['is_superuser'] password = None if not options['noinput']: try: if not email: email = self.get_email() if not options['nopassword']: password = self.get_password() if is_superuser is None: is_superuser = self.get_superuser() except KeyboardInterrupt: self.stderr.write("\nOperation cancelled.") sys.exit(1) if not email: raise CommandError('Invalid or missing email address') if not options['nopassword'] and not password: raise CommandError('No password set and --no-password not passed') user = User( email=email, username=email, is_superuser=is_superuser, is_staff=is_superuser, is_active=True, ) if password: user.set_password(password) user.save() self.stdout.write('User created: %s' % (email, ))
def set_admin(args): try: user = User.objects.get(username=args.email) user.set_password(args.password) user.save() return True except: pass try: user = User( email=args.email, username=args.email, is_superuser=True, is_staff=True, is_active=True, ) user.set_password(args.password) user.save() return True except: pass return False
def nobody(self): user = User(username="******", email="nobody@localhost") user.set_password('nobody') user.save() return user
#!/usr/bin/env python import sys # Bootstrap the Sentry environment from sentry.utils.runner import configure configure() # Add default superuser from sentry.models import User user = User() user.username = sys.argv[1] user.email = sys.argv[2] user.is_superuser = True user.set_password(sys.argv[3]) user.save()
def owner(self): user = User(username="******", email="owner@localhost") user.set_password('owner') user.save() return user
configure() # Do something crazy from sentry.models import ( Team, Project, ProjectKey, User, Organization, OrganizationMember, OrganizationMemberTeam, Option ) organization = Organization.objects.filter(id=1)[0] team = Team.objects.filter(id=1)[0] user = User() user.username = env('AUTH_LOGIN') user.email = env('AUTH_EMAIL') user.is_superuser = True user.set_password(env('AUTH_PASSWORD')) user.save() member = OrganizationMember.objects.create( organization=organization, user=user, role='owner', ) project = Project() project.slug = 'Default' project.platform = 'php' project.name = 'Default' project.organization = organization project.save()
def admin(self): user = User(username="******", email="admin@localhost", is_staff=True, is_superuser=True) user.set_password('admin') user.save() return user
def createuser(email, password, superuser, no_password, no_input): "Create a new user." if not no_input: if not email: email = _get_email() if not (password or no_password): password = _get_password() if superuser is None: superuser = _get_superuser() if superuser is None: superuser = False if not email: raise click.ClickException('Invalid or missing email address.') # TODO(mattrobenolt): Accept password over stdin? if not no_password and not password: raise click.ClickException('No password set and --no-password not passed.') from sentry import roles from sentry.models import User from django.conf import settings user = User( email=email, username=email, is_superuser=superuser, is_staff=superuser, is_active=True, ) if password: user.set_password(password) user.save() click.echo('User created: %s' % (email, )) # TODO(dcramer): kill this when we improve flows if settings.SENTRY_SINGLE_ORGANIZATION: from sentry.models import (Organization, OrganizationMember, OrganizationMemberTeam, Team) org = Organization.get_default() if superuser: role = roles.get_top_dog().id else: role = org.default_role member = OrganizationMember.objects.create( organization=org, user=user, role=role, ) # if we've only got a single team let's go ahead and give # access to that team as its likely the desired outcome teams = list(Team.objects.filter(organization=org)[0:2]) if len(teams) == 1: OrganizationMemberTeam.objects.create( team=teams[0], organizationmember=member, ) click.echo('Added to organization: %s' % (org.slug, ))
def test_requires_password_on_valid_accounts(self): user = User() user.set_password('foo') form = RemoveProjectForm(user=user, project_list=[]) self.assertIn('password', form.fields)
react_project.team = team react_project.name = 'React' react_project.organization = organization react_project.save() react_project.add_team(team) react_project.save() user = User.objects.filter(username='******').first() if not user: user = User() user.username = '******' user.email = 'admin@localhost' user.is_superuser = True user.set_password('admin') user.save() member = OrganizationMember.objects.create( organization=organization, user=user, role='owner', ) OrganizationMemberTeam.objects.create( organizationmember=member, team=team, ) django_key = ProjectKey.objects.filter(project=django_project).first() react_key = ProjectKey.objects.filter(project=react_project).first()
def test_requires_password_on_valid_accounts(self): user = User() user.set_password('foo') form = AccountSettingsForm(user=user) self.assertIn('old_password', form.fields)
# Bootstrap the Sentry environment from sentry.models import Organization, OrganizationMember, \ OrganizationMemberTeam, Project, ProjectKey, Team, User from sentry.utils.runner import configure configure() # Make an assumption that if 'admin' -User exists Sentry has been initialized if not User.objects.filter(username='******').exists(): user = User() user.username = '******' user.email = '*****@*****.**' user.is_superuser = True user.set_password('admin') user.save() organization = Organization.objects.filter(slug='sentry')[0] team = Team() team.name = 'COD' team.organization = organization team.save() project = Project() project.team = team project.add_team(team) project.name = 'Cern Open Data Portal' project.organization = organization project.save()
#!/srv/sentry/application/current/bin/python {% from "sentry/map.jinja" import sentry with context %} from sentry.utils.runner import configure configure() from sentry.models import Team, Project, ProjectKey, User, Organization user = User() user.username = '******' user.email = '{{sentry.bootstrap.email}}' user.is_superuser = True user.set_password('{{sentry.bootstrap.password}}') user.save() organization = Organization() organization.name = '{{sentry.bootstrap.organization}}' organization.owner = user organization.save() team = Team() team.organization = organization team.name = '{{sentry.bootstrap.team}}' team.owner = user team.save() project = Project() project.organization = organization project.team = team project.owner = user project.name = '{{sentry.bootstrap.project}}'
organization.save() team = Team() team.name = os.environ.get('TEAM_NAME', 'Aptible') team.organization = organization team.save() project = Project() project.team = team project.name = 'Default' project.organization = organization project.save() user = User() user.username = os.environ.get('ADMIN_USERNAME', 'aptible') user.email = 'admin@localhost' user.is_superuser = True user.set_password(os.environ['ADMIN_PASSWORD']) user.save() member = OrganizationMember.objects.create( organization=organization, user=user, role='owner', ) OrganizationMemberTeam.objects.create( organizationmember=member, team=team, )