Exemplo n.º 1
0
    def test_deactivate_additional_users(self):
        update_limits({'users': get_total_users() + 1})

        if not frappe.db.exists(
                "User", "*****@*****.**"):
            user = frappe.new_doc('User')
            user.email = '*****@*****.**'
            user.first_name = 'Test Deactivate Additional Users'
            user.add_roles("System Manager")

        #update limits
        update_limits({"users": get_total_users() - 1})
        self.assertEqual(
            frappe.db.get_value(
                "User", "*****@*****.**",
                "enabled"), 0)

        if frappe.db.exists("User",
                            "*****@*****.**"):
            delete_contact('*****@*****.**')
            frappe.delete_doc('User',
                              '*****@*****.**')

        # Clear the user limit
        clear_limit('users')
Exemplo n.º 2
0
def disable_users(limits=None):
	if not limits:
		return

	if limits.get('users'):
		system_manager = get_system_managers(only_name=True)[-1]

		#exclude system manager from active user list
		active_users =  frappe.db.sql_list("""select name from tabUser
			where name not in ('Administrator', 'Guest', %s) and user_type = 'System User' and enabled=1
			order by creation desc""", system_manager)

		user_limit = cint(limits.get('users')) - 1

		if len(active_users) > user_limit:

			# if allowed user limit 1 then deactivate all additional users
			# else extract additional user from active user list and deactivate them
			if cint(limits.get('users')) != 1:
				active_users = active_users[:-1 * user_limit]

			for user in active_users:
				frappe.db.set_value("User", user, 'enabled', 0)

		from frappe.core.doctype.user.user import get_total_users

		if get_total_users() > cint(limits.get('users')):
			reset_simultaneous_sessions(cint(limits.get('users')))

	frappe.db.commit()
Exemplo n.º 3
0
def disable_users(limits=None):
    if not limits:
        return

    if limits.get('users'):
        system_manager = get_system_managers(only_name=True)[-1]

        #exclude system manager from active user list
        active_users = frappe.db.sql_list(
            """select name from tabUser
			where name not in ('Administrator', 'Guest', %s) and user_type = 'System User' and enabled=1
			order by creation desc""", system_manager)

        user_limit = cint(limits.get('users')) - 1

        if len(active_users) > user_limit:

            # if allowed user limit 1 then deactivate all additional users
            # else extract additional user from active user list and deactivate them
            if cint(limits.get('users')) != 1:
                active_users = active_users[:-1 * user_limit]

            for user in active_users:
                frappe.db.set_value("User", user, 'enabled', 0)

        from frappe.core.doctype.user.user import get_total_users

        if get_total_users() > cint(limits.get('users')):
            reset_simultaneous_sessions(cint(limits.get('users')))

    frappe.db.commit()
Exemplo n.º 4
0
	def test_deactivate_additional_users(self):
		update_limits({'users': get_total_users()+1})
		
		if not frappe.db.exists("User", "*****@*****.**"):
			user = frappe.new_doc('User')
			user.email = '*****@*****.**'
			user.first_name = 'Test Deactivate Additional Users'
			user.add_roles("System Manager")

		#update limits
		update_limits({"users": get_total_users()-1})
		self.assertEqual(frappe.db.get_value("User", "*****@*****.**", "enabled"), 0)
		
		if frappe.db.exists("User", "*****@*****.**"):
			frappe.delete_doc('User', '*****@*****.**')

		# Clear the user limit
		clear_limit('users')
Exemplo n.º 5
0
    def test_user_limit_for_site_with_simultaneous_sessions(self):
        clear_limit('users')

        # make sure this user counts
        user = frappe.get_doc('User', '*****@*****.**')
        user.add_roles('Website Manager')
        user.save()

        update_limits({'users': get_total_users()})

        user.simultaneous_sessions = user.simultaneous_sessions + 1

        self.assertRaises(MaxUsersReachedError, user.save)

        # Clear the user limit
        clear_limit('users')
Exemplo n.º 6
0
	def test_user_limit_for_site_with_simultaneous_sessions(self):
		clear_limit('users')

		# make sure this user counts
		user = frappe.get_doc('User', '*****@*****.**')
		user.add_roles('Website Manager')
		user.save()

		update_limits({'users': get_total_users()})

		user.simultaneous_sessions = user.simultaneous_sessions + 1

		self.assertRaises(MaxUsersReachedError, user.save)

		# Clear the user limit
		clear_limit('users')
Exemplo n.º 7
0
	def test_user_limit_for_site(self):
		update_limits({'users': get_total_users()})

		# reload site config
		from frappe import _dict
		frappe.local.conf = _dict(frappe.get_site_config())

		# Create a new user
		user = frappe.new_doc('User')
		user.email = '*****@*****.**'
		user.first_name = 'Test_max_user'

		self.assertRaises(MaxUsersReachedError, user.add_roles, 'System Manager')

		if frappe.db.exists('User', '*****@*****.**'):
			frappe.delete_doc('User', '*****@*****.**')

		# Clear the user limit
		clear_limit('users')
Exemplo n.º 8
0
def disable_users(limits=None):
    warnings.warn(
        "disable_users will be deprecated. Please create a custom method for this functionality.",
        FutureWarning)

    if not limits:
        return

    if limits.get('users'):
        system_manager = get_system_managers(only_name=True)
        user_list = ['Administrator', 'Guest']
        if system_manager:
            user_list.append(system_manager[-1])
        #exclude system manager from active user list
        # active_users =  frappe.db.sql_list("""select name from tabUser
        # 	where name not in ('Administrator', 'Guest', %s) and user_type = 'System User' and enabled=1
        # 	order by creation desc""", system_manager)
        active_users = frappe.get_all("User",
                                      filters={
                                          "user_type": "System User",
                                          "enabled": 1,
                                          "name": ["not in", user_list]
                                      },
                                      fields=["name"])
        user_limit = cint(limits.get('users')) - 1

        if len(active_users) > user_limit:

            # if allowed user limit 1 then deactivate all additional users
            # else extract additional user from active user list and deactivate them
            if cint(limits.get('users')) != 1:
                active_users = active_users[:-1 * user_limit]

            for user in active_users:
                frappe.db.set_value("User", user, 'enabled', 0)

        from frappe.core.doctype.user.user import get_total_users

        if get_total_users() or 0 > cint(limits.get('users')):
            reset_simultaneous_sessions(cint(limits.get('users')))

    frappe.db.commit()
Exemplo n.º 9
0
    def test_user_limit_for_site(self):
        from frappe.core.doctype.user.user import get_total_users

        update_limits({"users": get_total_users()})

        # reload site config
        from frappe import _dict

        frappe.local.conf = _dict(frappe.get_site_config())

        # Create a new user
        user = frappe.new_doc("User")
        user.email = "*****@*****.**"
        user.first_name = "Test_max_user"

        self.assertRaises(MaxUsersReachedError, user.add_roles, "System Manager")

        if frappe.db.exists("User", "*****@*****.**"):
            frappe.delete_doc("User", "*****@*****.**")

            # Clear the user limit
        clear_limit("users")
Exemplo n.º 10
0
def get_site_status(verbose=False):
    import frappe
    import frappe.utils
    from frappe.utils.user import get_system_managers
    from frappe.core.doctype.user.user import get_total_users, get_active_users, \
     get_website_users, get_active_website_users

    import json
    frappe.connect()
    ret = {
        'last_backup_on': frappe.local.conf.last_backup_on,
        'active_users': get_active_users(),
        'total_users': get_total_users(),
        'active_website_users': get_active_website_users(),
        'website_users': get_website_users(),
        'system_managers': "\n".join(get_system_managers()),
        'default_company': frappe.db.get_default("company"),
        'disk_usage': frappe.utils.get_disk_usage(),
        'working_directory': frappe.local.site_path
    }

    # country, timezone, industry
    for key in ["country", "time_zone", "industry"]:
        ret[key] = frappe.db.get_default(key)

    # basic usage/progress analytics
    for doctype in ("Company", "Customer", "Item", "Quotation",
                    "Sales Invoice", "Journal Voucher", "Stock Ledger Entry"):
        key = doctype.lower().replace(" ", "_") + "_exists"
        ret[key] = 1 if frappe.db.count(doctype) else 0

    frappe.destroy()

    if verbose:
        print json.dumps(ret, indent=1, sort_keys=True)

    return ret
Exemplo n.º 11
0
def get_site_status(verbose=False):
	import frappe
	import frappe.utils
	from frappe.utils.user import get_system_managers
	from frappe.core.doctype.user.user import get_total_users, get_active_users, \
		get_website_users, get_active_website_users

	import json
	frappe.connect()
	ret = {
		'last_backup_on': frappe.local.conf.last_backup_on,
		'active_users': get_active_users(),
		'total_users': get_total_users(),
		'active_website_users': get_active_website_users(),
		'website_users': get_website_users(),
		'system_managers': "\n".join(get_system_managers()),
		'default_company': frappe.db.get_default("company"),
		'disk_usage': frappe.utils.get_disk_usage(),
		'working_directory': frappe.local.site_path
	}

	# country, timezone, industry
	for key in ["country", "time_zone", "industry"]:
		ret[key] = frappe.db.get_default(key)

	# basic usage/progress analytics
	for doctype in ("Company", "Customer", "Item", "Quotation", "Sales Invoice",
		"Journal Voucher", "Stock Ledger Entry"):
			key = doctype.lower().replace(" ", "_") + "_exists"
			ret[key] = 1 if frappe.db.count(doctype) else 0

	frappe.destroy()

	if verbose:
		print json.dumps(ret, indent=1, sort_keys=True)

	return ret