Module: Ramaze::Helper::Users

Defined in:
lib/zen/package/users/lib/users/helper/users.rb

Overview

Helper for the users package. Note that this helper is called "Users" rather than "User" as otherwise Ramaze could get confused and load the incorrect helper (as it already comes with a helper named "User").

Since:

Instance Method Summary (collapse)

Instance Method Details

- (Object) update_permissions(column, id, new_perms = [], old_perms = [])

Updates the permissions for a user or a user group.

Examples:

update_permissions(:user_id, 5, [:show_user], [:edit_user])

Parameters:

  • column (Symbol)

    The name of the column to use in the permissions table. Can either be :user_id or :user_group_id.

  • id (Fixnum)

    The primary value of the column attribute.

  • new_perms (Array) (defaults to: [])

    An array of new permissions.

  • old_perms (Array) (defaults to: [])

    An array of existing permissions.

Since:

  • 0.3



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/zen/package/users/lib/users/helper/users.rb', line 60

def update_permissions(column, id, new_perms = [], old_perms = [])
  add_perms = []
  rm_perms  = []

  # Insert all the new permissions
  new_perms.each do |perm|
    if !old_perms.include?(perm)
      add_perms << {column => id, :permission => perm}
    end
  end

  # Remove permissions if they weren't checked
  old_perms.each do |perm|
    if !new_perms.include?(perm)
      rm_perms << {column => id, :permission => perm}
    end
  end

  ::Users::Model::Permission.insert_multiple(add_perms)
  ::Users::Model::Permission.filter(
    column      => rm_perms.map { |p| p[column] },
    :permission => rm_perms.map { |p| p[:permission] }
  ).delete

  session[:super_group] = nil
  session[:permissions] = nil
end

- (Users::Model::User) validate_user(user_id)

Validates a user and returns the object if it's a valid user.

Parameters:

  • user_id (Fixnum)

    The ID of the user to validate.

Returns:

Since:

  • 0.2.8



36
37
38
39
40
41
42
43
44
45
# File 'lib/zen/package/users/lib/users/helper/users.rb', line 36

def validate_user(user_id)
  user = ::Users::Model::User[user_id]

  if user.nil?
    message(:error, lang('users.errors.invalid_user'))
    redirect(::Users::Controller::Users.r(:index))
  else
    return user
  end
end

- (Users::Model::UserGroup) validate_user_group(user_group_id)

Checks if a user group is valid and returns it if this is the case.

Parameters:

  • user_group_id (Fixnum)

    The ID of the user group to validate.

Returns:

Since:

  • 0.2.8



18
19
20
21
22
23
24
25
26
27
# File 'lib/zen/package/users/lib/users/helper/users.rb', line 18

def validate_user_group(user_group_id)
  group = ::Users::Model::UserGroup[user_group_id]

  if group.nil?
    message(:error, lang('user_groups.errors.invalid_group'))
    redirect(::Users::Controller::UserGroups.r(:index))
  else
    return group
  end
end