def logged_in(self): # we need to set the language via a redirect lang = session.pop('lang', None) session.save() # we need to set the language explicitly here or the flash # messages will not be translated. i18n.set_lang(lang) if c.user: is_new = False is_sysadmin = new_authz.is_sysadmin(c.user) # Retrieve information about the current user context = {'model': model, 'session': model.Session, 'user': c.user or c.author, 'schema': schema.user_new_form_schema()} data_dict = {'id': c.user} user_dict = get_action('user_show')(context, data_dict) # This check is not needed (or correct) for sys admins if not is_sysadmin: # Get all organizations and all groups the user belongs to orgs_q = model.Session.query(model.Group) \ .filter(model.Group.is_organization == True) \ .filter(model.Group.state == 'active') q = model.Session.query(model.Member) \ .filter(model.Member.table_name == 'user') \ .filter(model.Member.table_id == user_dict['id']) group_ids = [] for row in q.all(): group_ids.append(row.group_id) if not group_ids: is_new = True else: orgs_q = orgs_q.filter(model.Group.id.in_(group_ids)) orgs_list = model_dictize.group_list_dictize(orgs_q.all(), context) if len(orgs_list) == 0: is_new = True h.flash_success(_("<p><strong>Note</strong></p>" "<p>%s is now logged in</p>") % user_dict['display_name'], allow_html=True) if is_new: return h.redirect_to(controller='ckanext.canada.controller:CanadaController', action='view_new_user', locale=lang) else: return h.redirect_to(controller='package', action='search', locale=lang) else: h.flash_error(_('Login failed. Bad username or password.')) return h.redirect_to(controller='user', action='login', locale=lang)
def register(self, data=None, errors=None, error_summary=None): '''GET to display a form for registering a new user. or POST the form data to actually do the user registration. The bulk of this code is pulled directly from ckan/controlllers/user.py ''' context = {'model': model, 'session': model.Session, 'user': c.user or c.author, 'schema': schema.user_new_form_schema(), 'save': 'save' in request.params} try: check_access('user_create', context) except NotAuthorized: abort(401, _('Unauthorized to create a user')) if context['save'] and not data: uc = UserController() return uc._save_new(context) if c.user and not data: # #1799 Don't offer the registration form if already logged in return render('user/logout_first.html') data = data or {} errors = errors or {} error_summary = error_summary or {} vars = {'data': data, 'errors': errors, 'error_summary': error_summary} c.is_sysadmin = new_authz.is_sysadmin(c.user) c.form = render('user/new_user_form.html', extra_vars=vars) return render('user/new.html')
def register(self, data=None, errors=None, error_summary=None): '''GET to display a form for registering a new user. or POST the form data to actually do the user registration. The bulk of this code is pulled directly from ckan/controlllers/user.py ''' context = { 'model': model, 'session': model.Session, 'user': c.user or c.author, 'schema': schema.user_new_form_schema(), 'save': 'save' in request.params } try: check_access('user_create', context) except NotAuthorized: abort(401, _('Unauthorized to create a user')) if context['save'] and not data: try: return self._save_new(context) except HTTPFound: # redirected after successful user create notify_ckan_user_create( email=request.params.get('email', ''), fullname=request.params.get('fullname', ''), username=request.params.get('name', ''), phoneno=request.params.get('phoneno', ''), dept=request.params.get('department', '')) notice_no_access() raise if c.user and not data and not is_sysadmin(c.user): # #1799 Don't offer the registration form if already logged in return render('user/logout_first.html') data = data or {} errors = errors or {} error_summary = error_summary or {} d = {'data': data, 'errors': errors, 'error_summary': error_summary} c.is_sysadmin = is_sysadmin(c.user) c.form = render('user/new_user_form.html', extra_vars=d) return render('user/new.html')
def register(self, data=None, errors=None, error_summary=None): '''GET to display a form for registering a new user. or POST the form data to actually do the user registration. The bulk of this code is pulled directly from ckan/controlllers/user.py ''' context = {'model': model, 'session': model.Session, 'user': c.user or c.author, 'schema': schema.user_new_form_schema(), 'save': 'save' in request.params} try: check_access('user_create', context) except NotAuthorized: abort(401, _('Unauthorized to create a user')) if context['save'] and not data: try: return self._save_new(context) except HTTPFound: # redirected after successful user create notify_ckan_user_create( email=request.params.get('email', ''), fullname=request.params.get('fullname', ''), username=request.params.get('name', ''), phoneno=request.params.get('phoneno', ''), dept=request.params.get('department', '')) notice_no_access() raise if c.user and not data and not is_sysadmin(c.user): # #1799 Don't offer the registration form if already logged in return render('user/logout_first.html') data = data or {} errors = errors or {} error_summary = error_summary or {} d = {'data': data, 'errors': errors, 'error_summary': error_summary} c.is_sysadmin = is_sysadmin(c.user) c.form = render('user/new_user_form.html', extra_vars=d) return render('user/new.html')
def _new_form_to_db_schema(): return schema.user_new_form_schema()
def _new_form_to_db_schema(self): return schema.user_new_form_schema()
def _new_form_to_db_schema(self): return user_new_form_schema()
from ckan.lib.uploader import Upload from ckan.plugins import toolkit from .user_creation import helpers as user_creation_helpers import plugin from authenticator import unlock_account, LOGIN_THROTTLE_EXPIRY LOG = getLogger(__name__) LOGGED_IN = UserController.logged_in PACKAGE_EDIT = PackageController._save_edit RESOURCE_EDIT = PackageController.resource_edit DEFAULT_USER_SCHEMA = schemas.default_user_schema() USER_NEW_FORM_SCHEMA = schemas.user_new_form_schema() USER_EDIT_FORM_SCHEMA = schemas.user_edit_form_schema() DEFAULT_UPDATE_USER_SCHEMA = schemas.default_update_user_schema() RESOURCE_SCHEMA = schemas.default_resource_schema() UPLOAD = Upload.upload if storage_enabled: STORAGE_DOWNLOAD = StorageController.file RESOURCE_DOWNLOAD = PackageController.resource_download EMAIL_REGEX = re.compile(r"[^@]+@[^@]+\.[^@]+") def configure(config): global password_min_length global password_patterns
def _new_form_to_db_schema(self): return self._unique_email_user_schema(schema.user_new_form_schema())
except Invalid, e: log.error('Name does not validate %r - not created user.', username) return name, None existing_user = model.User.by_name(name) if existing_user: log.info('User %r already exists', name) return name, existing_user.id ctx = { 'session': model.Session, 'user' : u'127.0.0.1', 'model' : model, 'save' : True, 'message': u'', 'schema' : user_new_form_schema() } data = { 'password1': u'123123', # we use drupal for auth 'password2': u'123123', 'name': name, 'fullname' : unicode(username), 'save': u'', 'email': email } try: user = get_action('user_create')(ctx, data) except Exception as e: warn('Could not create user: %r %s', e, e) return username, None
except Invalid, e: log.error('Name does not validate %r - not created user.', username) return name, None existing_user = model.User.by_name(name) if existing_user: log.info('User %r already exists', name) return name, existing_user.id ctx = { 'session': model.Session, 'user': u'127.0.0.1', 'model': model, 'save': True, 'message': u'', 'schema': user_new_form_schema() } data = { 'password1': u'123123', # we use drupal for auth 'password2': u'123123', 'name': name, 'fullname': unicode(username), 'save': u'', 'email': email } try: user = get_action('user_create')(ctx, data) except Exception as e: warn('Could not create user: %r %s', e, e) return username, None