mirror of
https://github.com/we-promise/sure.git
synced 2026-04-19 12:04:08 +00:00
Make first user of instance automatically super_admin (#655)
* Implement dynamic role assignment for new family creators. Introduced `User.role_for_new_family_creator` to assign `super_admin` to the first user of an instance and a configurable fallback role (e.g., `admin`) to subsequent users. Updated controllers and tests accordingly. * Update default fallback role for family creators to admin. --------- Co-authored-by: luckyPipewrench <luckypipewrench@proton.me>
This commit is contained in:
@@ -331,4 +331,21 @@ class UserTest < ActiveSupport::TestCase
|
||||
assert_not user.valid?
|
||||
assert_includes user.errors[:password], "can't be blank"
|
||||
end
|
||||
|
||||
# First user role assignment tests
|
||||
test "role_for_new_family_creator returns super_admin when no users exist" do
|
||||
# Delete all users to simulate fresh instance
|
||||
User.destroy_all
|
||||
|
||||
assert_equal :super_admin, User.role_for_new_family_creator
|
||||
end
|
||||
|
||||
test "role_for_new_family_creator returns fallback role when users exist" do
|
||||
# Users exist from fixtures
|
||||
assert User.exists?
|
||||
|
||||
assert_equal :admin, User.role_for_new_family_creator
|
||||
assert_equal :member, User.role_for_new_family_creator(fallback_role: :member)
|
||||
assert_equal "custom_role", User.role_for_new_family_creator(fallback_role: "custom_role")
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user