OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openproject/app/cells/users/row_cell.rb

65 lines
1.1 KiB

module Users
class RowCell < ::RowCell
include AvatarHelper
include UsersHelper
def user
model
end
def row_css_class
status = user.status
blocked = "blocked" if user.failed_too_many_recent_login_attempts?
["user", status, blocked].compact.join(" ")
end
def login
icon = avatar user, size: :mini
link = link_to h(user.login), edit_user_path(user)
icon + link
end
def mail
mail_to user.mail
end
def admin
checked_image user.admin?
end
def last_login_on
format_time user.last_login_on unless user.last_login_on.nil?
end
def status
full_user_status user
end
def button_links
[status_link].compact
end
def status_link
[35507] Allow global permission to add and edit users (#8937) * Add global permission for add_user * Rename fieldset for global roles to "Global" * Add permission to admin actions * Add index action to add_user permission * Redirect to first admin item if only one * Hide status action for non admins * Break down user form into partials for easier rendering * Disable some user form tabs for non-admins * Make users API and services conformant with endpoints * Fix references to DeleteService#deletion_allowed? * Authorize add_user on show as well * Only show invite user toolbar item with permission * Fix Delete Service spec * Fix the way user prefs are handled in service * Ensure session_id is treated as string This causes a cast error otherwise as it passes rack session locally * Fix service call on onboarding controller * Fix service call on users controller * Add delete spec for global user * Hide login attribute again when adding a new user * Render auth source correctly in simple form * Fix creating invited users through service The invitation requires the mail attribute to be present. Previously, there was a manual error added to the mail. As the errors are now determined by the contract + model, we now end up with all missing properties as errors. * Properly constraint attributes for non-admins * Add specs for global user * Start working on how to update password from UsersController that code is a mess... * Change permitted_params spec to include non-admin params * Fix create user service spec * Remove mail_notification param from users controller It's not part of the contract/params passed to user * Remove todos * Extend docs * Correct the way backlogs patches into the user settings * Remove superfluous UpdateUserService * Rewrite duplicated update service examples into common shared example * Remove duplicate password writable check * Base Users::DeleteContract on base delete contract * Move checks for active users into the UserAllowedService * Restore password writable check as it is not an attribute * Fix menus for global user * Allow global users to add custom fields * Allow global user add permission to reinvite user * Fix changed var name in update service spec * Ensure also invited or registered users can be authroized This ensure that e.g., invited users can also be set as watchers * fix typo Co-authored-by: ulferts <jens.ulferts@googlemail.com>
4 years ago
# Don't show for current user
return if user.id == table.current_user.id
# Don't show if non-admin
return unless table.current_user.admin?
change_user_status_links user
end
def column_css_class(column)
if column == :mail
"email"
elsif column == :login
"username"
else
super
end
end
end
end