Ejemplo n.º 1
0
 def test_create_user_1(self):
     
     # define user
     user = User()
     user.username='******'
     user['email']= '*****@*****.**'
     user['name']= 'Catalin Balan'        
     
     # create user
     UserManager(self.env).create_user(user)
     
     # test
     db = self.env.get_db_cnx()
     cursor = db.cursor()
     
     cursor.execute("SELECT name, value "
                     "FROM session_attribute "
                     "WHERE sid='cbalan' and name in ('enabled', 'name', 'email') "
                     "ORDER BY name")
     result = {}
     for name, value in cursor:
         result[name]=value
     
     self.assertEqual(result['name'], 'Catalin Balan')
     self.assertEqual(result['email'], '*****@*****.**')
     self.assertEqual(result['enabled'], '1')
     self.assertEqual(len(result),3)
Ejemplo n.º 2
0
 def test_search_users_1(self):
     # create users
     UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**', company='opt'))
     UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros'))
     UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros'))
     
     # search users using "default_attributes"
     search_result = UserManager(self.env).search_users(User(email='%culapov%'))
     
     # test        
     self.assertEqual(len(search_result), 1)
Ejemplo n.º 3
0
 def test_search_users_2(self):
     # create users
     UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**', company='opt'))
     UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros'))
     UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros'))
     
     # search users using "changes"
     user_template = User()
     user_template['email']='%culapov%'
     search_result = UserManager(self.env).search_users(user_template)
     
     # test        
     self.assertEqual(len(search_result), 1)
Ejemplo n.º 4
0
 def test_get_active_users(self):
     
     # create users
     UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**'))
     UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**'))
     
     # get active users
     active_users = UserManager(self.env).get_active_users()
     
     # test
     self.assertEqual(active_users[0].username, 'cbalan')
     self.assertEqual(active_users[1].username, 'aculapov')
     self.assertEqual(len(active_users), 2)
Ejemplo n.º 5
0
    def _do_import_current_users(self, req, dry_run=False):
        """ """
        active_users = [
            user.username for user in UserManager(self.env).get_active_users()
        ]
        try:
            from acct_mgr.api import AccountManager
            known_users = list(AccountManager(self.env).get_users())
        except:
            return []

        imported_users = []
        for username in known_users:
            if not username in active_users:
                imported_users.append(username)
                if not dry_run:
                    UserManager(self.env).create_user(User(username))
        if dry_run:
            return imported_users

        if len(imported_users) > 0:
            return _("Successfully imported the following users [%s].") % (
                ','.join(imported_users))
        else:
            return _("No users imported.")
Ejemplo n.º 6
0
    def _do_create_user(self, req):
        """ """
        if not req.args.get('um_newuser_username') or not req.args.get(
                'um_newuser_username').strip():
            raise TracError(_("Username field is mandatory"))

        is_trac_managed = req.args.get('um_newuser_type') == 'trac-managed'
        if is_trac_managed and not req.args.get('um_newuser_password'):
            raise TracError(_('Password field it\'s mandatory'))

        user = User(req.args.get('um_newuser_username').strip())
        for field in ['name', 'email', 'role'
                      ] + (is_trac_managed and ['password'] or []):
            if field == 'password':
                if req.args.get('um_newuser_password') == req.args.get(
                        'um_newuser_confirm_password'):
                    try:
                        from acct_mgr.api import AccountManager
                        AccountManager(self.env).set_password(
                            user.username, req.args.get('um_newuser_password'))
                    except Exception, e:
                        self.log.error(e)
                        raise TracError(
                            _('Unable to set %s\'s password. Please check out log messages.'
                              % (user.username)))
                else:
                    raise TracError(_('Passwords don\'t match'))
                continue
            if req.args.get('um_newuser_%s' % (field)):
                user[field] = req.args.get('um_newuser_%s' % (field))
Ejemplo n.º 7
0
 def test_get_user(self):
     
     # create user
     UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**'))
     
     # get user
     user = UserManager(self.env).get_user('cbalan')
     
     # test
     self.assertEqual(user['name'], 'Catalin Balan')
     self.assertEqual(user['email'], '*****@*****.**')
Ejemplo n.º 8
0
 def test_delete_attribute(self):
     # create users
     UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**', company='opt'))
     UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros'))
     UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros'))
     
     # test before
     db = self.env.get_db_cnx()
     cursor = db.cursor()
     
     cursor.execute("SELECT name, value "
                     "FROM session_attribute "
                     "WHERE sid='cbalan' "
                     "ORDER BY name")
     result = {}
     for name, value in cursor:
         result[name]=value
     self.assertEqual(len(result),4)
     
     # delete attribute
     user=UserManager(self.env).get_user('cbalan')
     del user['name']
     del user['email']
     user.save()
     
     # test after
     db = self.env.get_db_cnx()
     cursor = db.cursor()
     
     cursor.execute("SELECT name, value "
                     "FROM session_attribute "
                     "WHERE sid='cbalan' "
                     "ORDER BY name")
     result = {}
     for name, value in cursor:
         result[name]=value
     self.assertEqual(len(result),2)
Ejemplo n.º 9
0
 def test_save_user(self):
     
     # create user
     UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**'))
     
     # get user
     user = UserManager(self.env).get_user('cbalan')
     user['bio']="Some bio..."
     user.save()
     
     user_reloaded = UserManager(self.env).get_user('cbalan')
     # test
     self.assertEqual(user_reloaded['name'], 'Catalin Balan')
     self.assertEqual(user_reloaded['email'], '*****@*****.**')
     self.assertEqual(user_reloaded['bio'], 'Some bio...')
Ejemplo n.º 10
0
    def expand_macro(self, formatter, name, content):

        env = self.env
        req = formatter.req

        content_args = {}
        data = dict(user_profiles=[], user_profile_fields={})
        layout_args = {}
        rendered_result = ""
        user_profile_templates = []

        # collecting arguments
        if content:
            for i, macro_args in enumerate(content.split('|')):
                if i == 0:
                    content_args = MacroArguments(macro_args)
                    continue
                if i == 1:
                    layout_args = MacroArguments(macro_args)
                    break

            # extracting userProfile attrs
            if len(content_args) > 0:
                user_profile_templates.append(User(**content_args))

            if len(content_args.get_list_args()) > 0:
                for list_item in content_args.get_list_args():
                    user_profile_templates.append(
                        User(**MacroArguments(list_item[1:len(list_item) -
                                                        1])))

        # adding profiles fields description
        data['user_profile_fields'].update(
            UserProfileManager(env).get_user_profile_fields(
                ignore_internal=True))

        # removing picture_href
        data['user_profile_fields'].pop('picture_href')

        def inline_wiki_to_html(text):
            return wiki_to_html(text, env, req)

        data['wiki_to_html'] = inline_wiki_to_html

        # grabbing users
        if len(user_profile_templates) > 0:
            data['user_profiles'] = UserManager(env).search_users(
                user_profile_templates)
        else:
            data['user_profiles'] = UserManager(env).get_active_users()

        data['cells'] = list(self._get_cells(req, data['user_profiles']))

        # add stylesheet&script
        add_script(req, 'tracusermanager/js/macros_um_profile.js')
        add_stylesheet(req, 'tracusermanager/css/macros_um_profile.css')

        # render template
        template = Chrome(env).load_template('macro_um_profile.html',
                                             method='xhtml')
        data = Chrome(env).populate_data(req, {'users': data})

        rendered_result = template.generate(**data)

        # wrap everything
        if len(layout_args) > 0:
            rendered_result = html.div(rendered_result, **layout_args)

        return rendered_result