def adduser_suggest_username(data, request): if 'first_name' not in data or not isinstance(data['first_name'], basestring): return {'ok': False, 'error': 'Missing argument "first_name"'} if 'last_name' not in data or not isinstance(data['last_name'], basestring): return {'ok': False, 'error': 'Missing argument "last_name"'} if not 'secretariaat' in request.user.cached_groups_names: return {'ok': False, 'error': 'Permission denied'} return {'ok': True, 'username': find_name_for_user(data['first_name'], data['last_name'])}
def adduser_suggest_username(data, request): if 'first_name' not in data or not isinstance(data['first_name'], six.string_types): return {'ok': False, 'error': 'Missing argument "first_name"'} if 'last_name' not in data or not isinstance(data['last_name'], six.string_types): return {'ok': False, 'error': 'Missing argument "last_name"'} if 'secretariaat' not in request.user.cached_groups_names: return {'ok': False, 'error': 'Permission denied'} return { 'ok': True, 'username': find_name_for_user(data['first_name'], data['last_name']) }
def secr_add_user(request): if 'secretariaat' not in request.user.cached_groups_names: raise PermissionDenied if request.method == 'POST': form = AddUserForm(request.POST) if form.is_valid(): fd = form.cleaned_data nm = find_name_for_user(fd['first_name'], fd['last_name']) u = Es.User({ 'types': ['user'], 'names': [nm], 'humanNames': [{'human': fd['first_name']+' '+ fd['last_name']}], 'person': { 'titles': [], 'nick': fd['first_name'], 'given': None, 'family': fd['last_name'], 'gender': fd['sex'], 'dateOfBirth': date_to_dt( fd['dateOfBirth']) }, 'emailAddresses': [ {'email': fd['email'], 'from': DT_MIN, 'until': DT_MAX}], 'addresses': [ {'street': fd['addr_street'], 'number': fd['addr_number'], 'zip': fd['addr_zip'], 'city': fd['addr_city'], 'from': DT_MIN, 'until': DT_MAX}], 'telephones': [ {'number': fd['telephone'], 'from': DT_MIN, 'until': DT_MAX}], 'studies': [ {'institute': _id(fd['study_inst']), 'study': _id(fd['study']), 'from': DT_MIN, 'until': DT_MAX, 'number': fd['study_number']}], 'is_active': True, 'password': None }) logging.info("Added user %s" % nm) u.save() Es.add_relation(u, Es.id_by_name('leden', use_cache=True), _from=date_to_dt(fd['dateJoined'])) for l in fd['addToList']: Es.add_relation(u, Es.id_by_name(l, use_cache=True), _from=now()) Es.notify_informacie("%s is ingeschreven als lid." % ( u.humanName)) giedo.sync_async(request) request.user.push_message("Gebruiker toegevoegd. "+ "Let op: hij heeft geen wachtwoord "+ "en hij moet nog gemaild worden.") return HttpResponseRedirect(reverse('user-by-name', args=(nm,))) else: form = AddUserForm() return render_to_response('leden/secr_add_user.html', {'form': form}, context_instance=RequestContext(request))
def secr_add_user(request): if 'secretariaat' not in request.user.cached_groups_names: raise PermissionDenied if request.method == 'POST': form = AddUserForm(request.POST) if form.is_valid(): fd = form.cleaned_data nm = find_name_for_user(fd['first_name'], fd['last_name']) # First, create the entity. u = Es.User({ 'types': ['user'], 'names': [nm], 'humanNames': [{'human': fd['first_name']+' '+ fd['last_name']}], 'person': { 'titles': [], 'nick': fd['first_name'], 'given': None, 'family': fd['last_name'], 'gender': fd['gender'], 'dateOfBirth': date_to_dt( fd['dateOfBirth']) }, 'emailAddresses': [ {'email': fd['email'], 'from': DT_MIN, 'until': DT_MAX}], 'addresses': [ {'street': fd['addr_street'], 'number': fd['addr_number'], 'zip': fd['addr_zip'], 'city': fd['addr_city'], 'from': DT_MIN, 'until': DT_MAX}], 'telephones': [ {'number': fd['telephone'], 'from': DT_MIN, 'until': DT_MAX}], 'studies': [ {'institute': _id(fd['study_inst']), 'study': _id(fd['study']), 'from': DT_MIN, 'until': DT_MAX, 'number': fd['study_number']}], 'is_active': True, 'password': None }) logging.info("Added user %s" % nm) u.save() # Then, add the relations. groups = ['leden'] groups.append({'m': 'mannen', 'v': 'vrouwen'}.get(fd['gender'])) if fd['incasso']: groups.append('incasso') else: groups.append('geen-incasso') for group in groups: Es.add_relation(u, Es.id_by_name(group, use_cache=True), _from=date_to_dt(fd['dateJoined'])) for l in fd['addToList']: Es.add_relation(u, Es.id_by_name(l, use_cache=True), _from=now()) # Let giedo synch. to create the e-mail adresses, unix user, etc. # TODO use giedo.async() and let giedo send the welcome e-mail giedo.sync() # Create a new password and send it via e-mail pwd = pseudo_randstr() u.set_password(pwd) giedo.change_password(str(u.name), pwd, pwd) render_then_email("leden/set-password.mail.txt", u.canonical_full_email, { 'user': u, 'password': pwd}) # Send the welcome e-mail render_then_email("leden/welcome.mail.txt", u.canonical_full_email, { 'u': u}) Es.notify_informacie('adduser', request.user, entity=u._id) return HttpResponseRedirect(reverse('user-by-name', args=(nm,))) else: form = AddUserForm() return render_to_response('leden/secr_add_user.html', {'form': form}, context_instance=RequestContext(request))
def secr_add_user(request): if 'secretariaat' not in request.user.cached_groups_names: raise PermissionDenied if request.method == 'POST': form = AddUserForm(request.POST) if form.is_valid(): fd = form.cleaned_data nm = find_name_for_user(fd['first_name'], fd['last_name']) # First, create the entity. u = Es.User({ 'types': ['user'], 'names': [nm], 'humanNames': [{'human': fd['first_name']+' '+ fd['last_name']}], 'person': { 'titles': [], 'nick': fd['first_name'], 'given': None, 'family': fd['last_name'], 'gender': fd['sex'], 'dateOfBirth': date_to_dt( fd['dateOfBirth']) }, 'emailAddresses': [ {'email': fd['email'], 'from': DT_MIN, 'until': DT_MAX}], 'addresses': [ {'street': fd['addr_street'], 'number': fd['addr_number'], 'zip': fd['addr_zip'], 'city': fd['addr_city'], 'from': DT_MIN, 'until': DT_MAX}], 'telephones': [ {'number': fd['telephone'], 'from': DT_MIN, 'until': DT_MAX}], 'studies': [ {'institute': _id(fd['study_inst']), 'study': _id(fd['study']), 'from': DT_MIN, 'until': DT_MAX, 'number': fd['study_number']}], 'is_active': True, 'password': None }) logging.info("Added user %s" % nm) u.save() # Then, add the relations. Es.add_relation(u, Es.id_by_name('leden', use_cache=True), _from=date_to_dt(fd['dateJoined'])) for l in fd['addToList']: Es.add_relation(u, Es.id_by_name(l, use_cache=True), _from=now()) # Let giedo synch. to create the e-mail adresses, unix user, etc. # TODO use giedo.async() and let giedo send the welcome e-mail giedo.sync() # Create a new password and send it via e-mail pwd = pseudo_randstr() u.set_password(pwd) giedo.change_password(str(u.name), pwd, pwd) render_then_email("leden/set-password.mail.txt", u.canonical_full_email, { 'user': u, 'password': pwd}) # Send the welcome e-mail render_then_email("leden/welcome.mail.txt", u.canonical_full_email, { 'u': u}) Es.notify_informacie('adduser', entity=u._id) return HttpResponseRedirect(reverse('user-by-name', args=(nm,))) else: form = AddUserForm() return render_to_response('leden/secr_add_user.html', {'form': form}, context_instance=RequestContext(request))