diff -ur redmine-0.9.3/app/controllers/issues_controller.rb redmine/app/controllers/issues_controller.rb --- redmine-0.9.3/app/controllers/issues_controller.rb 2010-02-28 13:28:06.000000000 +0300 +++ redmine/app/controllers/issues_controller.rb 2010-04-23 16:51:54.059684277 +0400 @@ -104,6 +104,7 @@ end def show + return render_403 if !@issue.visible? @journals = @issue.journals.find(:all, :include => [:user, :details], :order => "#{Journal.table_name}.created_on ASC") @journals.each_with_index {|j,i| j.indice = i+1} @journals.reverse! if User.current.wants_comments_in_reverse_order? Only in redmine/app/controllers: issues_controller.rb.orig diff -ur redmine-0.9.3/app/controllers/projects_controller.rb redmine/app/controllers/projects_controller.rb --- redmine-0.9.3/app/controllers/projects_controller.rb 2010-02-28 13:28:06.000000000 +0300 +++ redmine/app/controllers/projects_controller.rb 2010-04-23 16:51:54.079692487 +0400 @@ -137,6 +137,9 @@ @open_issues_by_tracker = Issue.visible.count(:group => :tracker, :include => [:project, :status, :tracker], :conditions => ["(#{cond}) AND #{IssueStatus.table_name}.is_closed=?", false]) + @private_issues_by_tracker = Issue.count(:group => :tracker, + :include => [:project, :status, :tracker], + :conditions => ["(#{cond}) AND #{IssueStatus.table_name}.is_closed=? AND #{Issue.table_name}.is_private=?", false, true]) @total_issues_by_tracker = Issue.visible.count(:group => :tracker, :include => [:project, :status, :tracker], :conditions => cond) @@ -349,6 +352,9 @@ @activity.scope = (@author.nil? ? :default : :all) if @activity.scope.empty? events = @activity.events(@date_from, @date_to) + + # The private issues should be removed from events + events.delete_if { |e| e.is_a?(Issue) && !e.visible? || e.is_a?(Journal) && !e.issue.visible? } if events.empty? || stale?(:etag => [events.first, User.current]) respond_to do |format| Only in redmine/app/controllers: projects_controller.rb.orig diff -ur redmine-0.9.3/app/helpers/issues_helper.rb redmine/app/helpers/issues_helper.rb --- redmine-0.9.3/app/helpers/issues_helper.rb 2010-02-28 13:28:05.000000000 +0300 +++ redmine/app/helpers/issues_helper.rb 2010-04-20 23:03:31.730257806 +0400 @@ -96,6 +96,9 @@ when 'estimated_hours' value = "%0.02f" % detail.value.to_f unless detail.value.blank? old_value = "%0.02f" % detail.old_value.to_f unless detail.old_value.blank? + when 'is_private' + value = l(detail.value == "1" ? :general_text_Yes : :general_text_No) + old_value = l(detail.old_value == "1" ? :general_text_Yes : :general_text_No) end when 'cf' custom_field = CustomField.find_by_id(detail.prop_key) @@ -153,6 +156,7 @@ l(:field_priority), l(:field_subject), l(:field_assigned_to), + l(:field_is_private), l(:field_category), l(:field_fixed_version), l(:field_author), @@ -179,6 +183,7 @@ issue.priority.name, issue.subject, issue.assigned_to, + issue.is_private, issue.category, issue.fixed_version, issue.author.name, diff -ur redmine-0.9.3/app/models/issue.rb redmine/app/models/issue.rb --- redmine-0.9.3/app/models/issue.rb 2010-02-28 13:28:06.000000000 +0300 +++ redmine/app/models/issue.rb 2010-04-20 22:59:02.675645138 +0400 @@ -61,9 +61,9 @@ before_save :update_done_ratio_from_issue_status after_save :create_journal - # Returns true if usr or current user is allowed to view the issue - def visible?(usr=nil) - (usr || User.current).allowed_to?(:view_issues, self.project) + # Returns true if user is allowed to view the issue + def visible?(user=User.current) + user.allowed_to?(:view_issues, self.project) && (is_private==false || user.allowed_to?(:view_private_issues, self.project) || author == user || assigned_to == user || watched_by?(user)) end def after_initialize @@ -212,10 +212,15 @@ end def before_create - # default assignment based on category + # default assignment based on category and is_private if assigned_to.nil? && category && category.assigned_to self.assigned_to = category.assigned_to end + if author.allowed_to?(:add_private_issues, self.project) + self.is_private=1 unless author.allowed_to?(:add_issues, self.project) + else + self.is_private=0 + end end # Set the done_ratio using the status if that setting is set. This will keep the done_ratios diff -ur redmine-0.9.3/app/models/query.rb redmine/app/models/query.rb --- redmine-0.9.3/app/models/query.rb 2010-02-28 13:28:06.000000000 +0300 +++ redmine/app/models/query.rb 2010-04-23 16:51:54.098691666 +0400 @@ -127,6 +127,7 @@ QueryColumn.new(:assigned_to, :sortable => ["#{User.table_name}.lastname", "#{User.table_name}.firstname", "#{User.table_name}.id"], :groupable => true), QueryColumn.new(:updated_on, :sortable => "#{Issue.table_name}.updated_on", :default_order => 'desc'), QueryColumn.new(:category, :sortable => "#{IssueCategory.table_name}.name", :groupable => true), + QueryColumn.new(:is_private, :sortable => "#{Issue.table_name}.is_private", :groupable => true), QueryColumn.new(:fixed_version, :sortable => ["#{Version.table_name}.effective_date", "#{Version.table_name}.name"], :default_order => 'desc', :groupable => true), QueryColumn.new(:start_date, :sortable => "#{Issue.table_name}.start_date"), QueryColumn.new(:due_date, :sortable => "#{Issue.table_name}.due_date"), @@ -194,6 +195,7 @@ if User.current.logged? @available_filters["watcher_id"] = { :type => :list, :order => 15, :values => [["<< #{l(:label_me)} >>", "me"]] } + @available_filters["is_private"] = { :type => :list, :values => [[l(:general_text_yes), "1"], [l(:general_text_no), "0"]], :order => 16 } end if project @@ -409,6 +411,9 @@ end if filters and valid? + db_table = Watcher.table_name + cu_id = User.current.id.to_s + filters_clauses << '(' + Project.allowed_to_condition(User.current, :view_private_issues) + " OR #{Issue.table_name}.is_private=0 OR #{Issue.table_name}.author_id=#{cu_id} OR #{Issue.table_name}.assigned_to_id=#{cu_id} OR #{Issue.table_name}.id IN (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND user_id=#{cu_id}))" (filters_clauses << project_statement).join(' AND ') end Only in redmine/app/models: query.rb.orig diff -ur redmine-0.9.3/app/models/user.rb redmine/app/models/user.rb --- redmine-0.9.3/app/models/user.rb 2010-02-28 13:28:06.000000000 +0300 +++ redmine/app/models/user.rb 2010-04-17 12:03:42.118809360 +0400 @@ -289,7 +289,7 @@ roles = roles_for_project(project) return false unless roles - roles.detect {|role| (project.is_public? || role.member?) && role.allowed_to?(action)} + roles.any? {|role| (project.is_public? || role.member?) && role.allowed_to?(action)} elsif options[:global] # Admin users are always authorized @@ -297,7 +297,7 @@ # authorize if user has at least one role that has this permission roles = memberships.collect {|m| m.roles}.flatten.uniq - roles.detect {|r| r.allowed_to?(action)} || (self.logged? ? Role.non_member.allowed_to?(action) : Role.anonymous.allowed_to?(action)) + roles.any? {|r| r.allowed_to?(action)} || (self.logged? ? Role.non_member.allowed_to?(action) : Role.anonymous.allowed_to?(action)) else false end diff -ur redmine-0.9.3/app/views/issues/_form.rhtml redmine/app/views/issues/_form.rhtml --- redmine-0.9.3/app/views/issues/_form.rhtml 2010-02-28 13:28:06.000000000 +0300 +++ redmine/app/views/issues/_form.rhtml 2010-04-17 12:03:42.136812699 +0400 @@ -15,6 +15,9 @@
<%= render :partial => 'attributes' %>
+<% if User.current.allowed_to?(:add_issues, @project) && User.current.allowed_to?(:add_private_issues, @project) %> +

<%=f.check_box :is_private %>

+<% end %> <% if @issue.new_record? %>

<%= render :partial => 'attachments/form' %>

diff -ur redmine-0.9.3/app/views/issues/show.rhtml redmine/app/views/issues/show.rhtml --- redmine-0.9.3/app/views/issues/show.rhtml 2010-02-28 13:28:06.000000000 +0300 +++ redmine/app/views/issues/show.rhtml 2010-04-23 16:53:39.230316938 +0400 @@ -37,6 +37,9 @@ <% if @issue.estimated_hours %> <%=l(:field_estimated_hours)%>:<%= l_hours(@issue.estimated_hours) %> <% end %> + <% if @issue.is_private %> + <%=l(:field_is_private)%>:<%=l(:general_text_Yes)%> + <% end %> <%= render_custom_fields_rows(@issue) %> <%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %> diff -ur redmine-0.9.3/app/views/projects/show.rhtml redmine/app/views/projects/show.rhtml --- redmine-0.9.3/app/views/projects/show.rhtml 2010-02-28 13:28:06.000000000 +0300 +++ redmine/app/views/projects/show.rhtml 2010-04-17 12:03:42.363810665 +0400 @@ -31,6 +31,7 @@ "tracker_id" => tracker.id %>: <%= l(:label_x_open_issues_abbr_on_total, :count => @open_issues_by_tracker[tracker].to_i, :total => @total_issues_by_tracker[tracker].to_i) %> + (<%= @private_issues_by_tracker[tracker] || 0 %> <%= l(:label_private_issues, @private_issues_by_tracker[tracker] || 0) %>) <% end %> diff -ur redmine-0.9.3/config/locales/bg.yml redmine/config/locales/bg.yml --- redmine-0.9.3/config/locales/bg.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/bg.yml 2010-04-23 16:56:13.188544993 +0400 @@ -360,6 +360,8 @@ label_public_projects: Публични проекти label_open_issues: отворена label_open_issues_plural: отворени + label_private_issues: private + label_private_issues_plural: private label_closed_issues: затворена label_closed_issues_plural: затворени label_x_open_issues_abbr_on_total: @@ -716,6 +718,7 @@ setting_mail_handler_api_key: API key text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." field_parent_title: Parent page + field_is_private: Private issue label_issue_watchers: Watchers setting_commit_logs_encoding: Commit messages encoding button_quote: Quote @@ -729,6 +732,8 @@ permission_edit_own_time_entries: Edit own time logs permission_manage_public_queries: Manage public queries permission_add_issues: Add issues + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Log spent time permission_view_changesets: View changesets permission_view_time_entries: View spent time @@ -881,4 +886,4 @@ permission_export_wiki_pages: Export wiki pages setting_cache_formatted_text: Cache formatted text permission_manage_project_activities: Manage project activities - \ No newline at end of file + diff -ur redmine-0.9.3/config/locales/bs.yml redmine/config/locales/bs.yml --- redmine-0.9.3/config/locales/bs.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/bs.yml 2010-04-23 16:56:13.190544964 +0400 @@ -274,6 +274,7 @@ field_default_value: Podrazumjevana vrijednost field_comments_sorting: Prikaži komentare field_parent_title: 'Stranica "roditelj"' + field_is_private: Private issue field_editable: Može se mijenjati field_watcher: Posmatrač field_identity_url: OpenID URL @@ -329,6 +330,8 @@ permission_manage_versions: Upravljanje verzijama permission_manage_categories: Upravljanje kategorijama aktivnosti permission_add_issues: Dodaj aktivnosti + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Ispravka aktivnosti permission_manage_issue_relations: Upravljaj relacijama među aktivnostima permission_add_issue_notes: Dodaj bilješke @@ -496,6 +499,8 @@ label_public_projects: Javni projekti label_open_issues: otvoren label_open_issues_plural: otvoreni + label_private_issues: private + label_private_issues_plural: private label_closed_issues: zatvoren label_closed_issues_plural: zatvoreni label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/ca.yml redmine/config/locales/ca.yml --- redmine-0.9.3/config/locales/ca.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/ca.yml 2010-04-23 16:56:13.235550650 +0400 @@ -256,6 +256,7 @@ field_default_value: Valor predeterminat field_comments_sorting: Mostra els comentaris field_parent_title: Pàgina pare + field_is_private: Private issue field_editable: Es pot editar field_watcher: Vigilància field_identity_url: URL OpenID @@ -310,6 +311,8 @@ permission_manage_versions: Gestiona les versions permission_manage_categories: Gestiona les categories dels assumptes permission_add_issues: Afegeix assumptes + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Edita els assumptes permission_manage_issue_relations: Gestiona les relacions dels assumptes permission_add_issue_notes: Afegeix notes @@ -476,6 +479,8 @@ label_public_projects: Projectes públics label_open_issues: obert label_open_issues_plural: oberts + label_private_issues: private + label_private_issues_plural: private label_closed_issues: tancat label_closed_issues_plural: tancats label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/cs.yml redmine/config/locales/cs.yml --- redmine-0.9.3/config/locales/cs.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/cs.yml 2010-04-23 16:56:13.277565376 +0400 @@ -407,6 +407,8 @@ label_public_projects: Veřejné projekty label_open_issues: otevřený label_open_issues_plural: otevřené + label_private_issues: private + label_private_issues_plural: private label_closed_issues: uzavřený label_closed_issues_plural: uzavřené label_x_open_issues_abbr_on_total: @@ -722,6 +724,7 @@ setting_mail_handler_api_key: API klíč text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/email.yml a restartujte aplikaci." field_parent_title: Rodičovská stránka + field_is_private: Private issue label_issue_watchers: Sledování setting_commit_logs_encoding: Kódování zpráv při commitu button_quote: Citovat @@ -735,6 +738,8 @@ permission_edit_own_time_entries: Upravování vlastních zázamů o stráveném čase permission_manage_public_queries: Správa veřejných dotazů permission_add_issues: Přidávání úkolů + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Zaznamenávání stráveného času permission_view_changesets: Zobrazování sady změn permission_view_time_entries: Zobrazení stráveného času diff -ur redmine-0.9.3/config/locales/da.yml redmine/config/locales/da.yml --- redmine-0.9.3/config/locales/da.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/da.yml 2010-04-23 16:56:13.319571922 +0400 @@ -418,6 +418,8 @@ label_public_projects: Offentlige projekter label_open_issues: åben label_open_issues_plural: åbne + label_private_issues: private + label_private_issues_plural: private label_closed_issues: lukket label_closed_issues_plural: lukkede label_x_open_issues_abbr_on_total: @@ -733,6 +735,8 @@ button_quote: Citér permission_view_files: Se filer permission_add_issues: Tilføj sager + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_own_messages: Redigér egne beskeder permission_delete_own_messages: Slet egne beskeder permission_manage_public_queries: Administrér offentlig forespørgsler @@ -748,6 +752,7 @@ setting_sequential_project_identifiers: Generér sekventielle projekt-identifikatorer setting_plain_text_mail: Emails som almindelig tekst (ingen HTML) field_parent_title: Siden over + field_is_private: Private issue text_email_delivery_not_configured: "Email-afsendelse er ikke indstillet og notifikationer er defor slået fra.\nKonfigurér din SMTP server i config/email.yml og genstart applikationen for at aktivere email-afsendelse." permission_protect_wiki_pages: Beskyt wiki sider permission_manage_documents: Administrér dokumenter diff -ur redmine-0.9.3/config/locales/de.yml redmine/config/locales/de.yml --- redmine-0.9.3/config/locales/de.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/de.yml 2010-04-23 16:56:13.360571105 +0400 @@ -279,6 +279,7 @@ field_default_value: Standardwert field_comments_sorting: Kommentare anzeigen field_parent_title: Übergeordnete Seite + field_is_private: Private issue setting_app_title: Applikations-Titel setting_app_subtitle: Applikations-Untertitel @@ -326,6 +327,8 @@ permission_manage_versions: Versionen verwalten permission_manage_categories: Ticket-Kategorien verwalten permission_add_issues: Tickets hinzufügen + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Tickets bearbeiten permission_manage_issue_relations: Ticket-Beziehungen verwalten permission_add_issue_notes: Kommentare hinzufügen @@ -491,6 +494,8 @@ label_public_projects: Öffentliche Projekte label_open_issues: offen label_open_issues_plural: offen + label_private_issues: private + label_private_issues_plural: private label_closed_issues: geschlossen label_closed_issues_plural: geschlossen label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/el.yml redmine/config/locales/el.yml --- redmine-0.9.3/config/locales/el.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/el.yml 2010-04-23 16:56:13.387573311 +0400 @@ -265,6 +265,7 @@ field_default_value: Προκαθορισμένη τιμή field_comments_sorting: Προβολή σχολίων field_parent_title: Γονική σελίδα + field_is_private: Private issue field_editable: Επεξεργάσιμο field_watcher: Παρατηρητής field_identity_url: OpenID URL @@ -323,6 +324,8 @@ permission_manage_versions: Διαχείριση εκδόσεων permission_manage_categories: Διαχείριση κατηγοριών θεμάτων permission_add_issues: Προσθήκη θεμάτων + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Επεξεργασία θεμάτων permission_manage_issue_relations: Διαχείριση συσχετισμών θεμάτων permission_add_issue_notes: Προσθήκη σημειώσεων @@ -489,6 +492,8 @@ label_public_projects: Δημόσια έργα label_open_issues: Ανοικτό label_open_issues_plural: Ανοικτά + label_private_issues: private + label_private_issues_plural: private label_closed_issues: Κλειστό label_closed_issues_plural: Κλειστά label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/en.yml redmine/config/locales/en.yml --- redmine-0.9.3/config/locales/en.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/en.yml 2010-04-23 16:56:13.405577560 +0400 @@ -270,6 +270,7 @@ field_default_value: Default value field_comments_sorting: Display comments field_parent_title: Parent page + field_is_private: Private issue field_editable: Editable field_watcher: Watcher field_identity_url: OpenID URL @@ -341,6 +342,8 @@ permission_manage_categories: Manage issue categories permission_view_issues: View Issues permission_add_issues: Add issues + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Edit issues permission_manage_issue_relations: Manage issue relations permission_add_issue_notes: Add notes @@ -512,6 +515,8 @@ label_public_projects: Public projects label_open_issues: open label_open_issues_plural: open + label_private_issues: private + label_private_issues_plural: private label_closed_issues: closed label_closed_issues_plural: closed label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/es.yml redmine/config/locales/es.yml --- redmine-0.9.3/config/locales/es.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/es.yml 2010-04-23 16:56:13.423589557 +0400 @@ -300,6 +300,7 @@ field_onthefly: Creación del usuario "al vuelo" field_parent: Proyecto padre field_parent_title: Página padre + field_is_private: Private issue field_password: Contraseña field_password_confirmation: Confirmación field_port: Puerto @@ -538,6 +539,8 @@ label_not_equals: no igual label_open_issues: abierta label_open_issues_plural: abiertas + label_private_issues: private + label_private_issues_plural: private label_optional_description: Descripción opcional label_options: Opciones label_overall_activity: Actividad global @@ -690,6 +693,8 @@ permission_add_issue_notes: Añadir notas permission_add_issue_watchers: Añadir seguidores permission_add_issues: Añadir peticiones + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_add_messages: Enviar mensajes permission_browse_repository: Hojear repositiorio permission_comment_news: Comentar noticias diff -ur redmine-0.9.3/config/locales/fi.yml redmine/config/locales/fi.yml --- redmine-0.9.3/config/locales/fi.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/fi.yml 2010-04-23 16:56:13.441593030 +0400 @@ -417,6 +417,8 @@ label_public_projects: Julkiset projektit label_open_issues: avoin, yhteensä label_open_issues_plural: avointa, yhteensä + label_private_issues: private + label_private_issues_plural: private label_closed_issues: suljettu label_closed_issues_plural: suljettua label_x_open_issues_abbr_on_total: @@ -752,6 +754,7 @@ setting_mail_handler_api_key: API avain text_email_delivery_not_configured: "Sähköpostin jakelu ei ole määritelty ja sähköpostimuistutukset eivät ole käytössä.\nKonfiguroi sähköpostipalvelinasetukset (SMTP) config/email.yml tiedostosta ja uudelleenkäynnistä sovellus jotta asetukset astuvat voimaan." field_parent_title: Aloitussivu + field_is_private: Private issue label_issue_watchers: Tapahtuman seuraajat button_quote: Vastaa setting_sequential_project_identifiers: Luo peräkkäiset projektien tunnisteet @@ -765,6 +768,8 @@ permission_edit_own_time_entries: Muokka omia aikamerkintöjä permission_manage_public_queries: Hallinnoi julkisia hakuja permission_add_issues: Lisää tapahtumia + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Lokita käytettyä aikaa permission_view_changesets: Näytä muutosryhmät permission_view_time_entries: Näytä käytetty aika diff -ur redmine-0.9.3/config/locales/fr.yml redmine/config/locales/fr.yml --- redmine-0.9.3/config/locales/fr.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/fr.yml 2010-04-23 16:56:13.467595582 +0400 @@ -292,6 +292,7 @@ field_default_value: Valeur par défaut field_comments_sorting: Afficher les commentaires field_parent_title: Page parent + field_is_private: Private issue field_editable: Modifiable field_watcher: Observateur field_identity_url: URL OpenID @@ -363,6 +364,8 @@ permission_manage_categories: Gérer les catégories de demandes permission_view_issues: Voir les demandes permission_add_issues: Créer des demandes + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Modifier les demandes permission_manage_issue_relations: Gérer les relations permission_add_issue_notes: Ajouter des notes @@ -534,6 +537,8 @@ label_public_projects: Projets publics label_open_issues: ouvert label_open_issues_plural: ouverts + label_private_issues: private + label_private_issues_plural: private label_closed_issues: fermé label_closed_issues_plural: fermés label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/gl.yml redmine/config/locales/gl.yml --- redmine-0.9.3/config/locales/gl.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/gl.yml 2010-04-23 16:56:13.502603546 +0400 @@ -277,6 +277,7 @@ field_onthefly: Creación do usuario "ao voo" field_parent: Proxecto pai field_parent_title: Páxina pai + field_is_private: Private issue field_password: Contrasinal field_password_confirmation: Confirmación field_port: Porto @@ -515,6 +516,8 @@ label_not_equals: non igual label_open_issues: aberta label_open_issues_plural: abertas + label_private_issues: private + label_private_issues_plural: private label_optional_description: Descrición opcional label_options: Opcións label_overall_activity: Actividade global @@ -667,6 +670,8 @@ permission_add_issue_notes: Engadir notas permission_add_issue_watchers: Engadir seguidores permission_add_issues: Engadir peticións + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_add_messages: Enviar mensaxes permission_browse_repository: Ollar repositorio permission_comment_news: Comentar noticias diff -ur redmine-0.9.3/config/locales/he.yml redmine/config/locales/he.yml --- redmine-0.9.3/config/locales/he.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/he.yml 2010-04-23 16:56:13.619586384 +0400 @@ -375,6 +375,8 @@ label_public_projects: פרויקטים פומביים label_open_issues: פתוח label_open_issues_plural: פתוחים + label_private_issues: private + label_private_issues_plural: private label_closed_issues: סגור label_closed_issues_plural: סגורים label_x_open_issues_abbr_on_total: @@ -726,6 +728,7 @@ setting_mail_handler_api_key: מפתח API text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." field_parent_title: דף אב + field_is_private: Private issue label_issue_watchers: צופים setting_commit_logs_encoding: Commit messages encoding button_quote: צטט @@ -739,6 +742,8 @@ permission_edit_own_time_entries: ערוך את לוג הזמן של עצמך permission_manage_public_queries: נהל שאילתות פומביות permission_add_issues: הוסף נושא + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: תעד זמן שבוזבז permission_view_changesets: צפה בקבוצות שינויים permission_view_time_entries: צפה בזמן שבוזבז diff -ur redmine-0.9.3/config/locales/hr.yml redmine/config/locales/hr.yml --- redmine-0.9.3/config/locales/hr.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/hr.yml 2010-04-23 16:56:13.661584922 +0400 @@ -271,6 +271,7 @@ field_default_value: Zadana vrijednost field_comments_sorting: Prikaz komentara field_parent_title: Parent page + field_is_private: Private issue field_editable: Editable field_watcher: Watcher field_identity_url: OpenID URL @@ -339,6 +340,8 @@ permission_manage_categories: Upravljaj kategorijama predmeta permission_view_issues: Pregledaj zahtjeve permission_add_issues: Dodaj predmete + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Uredi predmete permission_manage_issue_relations: Upravljaj relacijama predmeta permission_add_issue_notes: Dodaj bilješke @@ -509,6 +512,8 @@ label_public_projects: Javni projekti label_open_issues: Otvoren label_open_issues_plural: Otvoreno + label_private_issues: private + label_private_issues_plural: private label_closed_issues: Zatvoren label_closed_issues_plural: Zatvoreno label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/hu.yml redmine/config/locales/hu.yml --- redmine-0.9.3/config/locales/hu.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/hu.yml 2010-04-23 16:56:13.703584023 +0400 @@ -434,6 +434,8 @@ label_public_projects: Nyilvános projektek label_open_issues: nyitott label_open_issues_plural: nyitott + label_private_issues: private + label_private_issues_plural: private label_closed_issues: lezárt label_closed_issues_plural: lezárt label_x_open_issues_abbr_on_total: @@ -747,6 +749,7 @@ setting_mail_handler_api_key: API kulcs text_email_delivery_not_configured: "Az E-mail küldés nincs konfigurálva, és az értesítések ki vannak kapcsolva.\nÁllítsd be az SMTP szervert a config/email.yml fájlban és indítsd újra az alkalmazást, hogy érvénybe lépjen." field_parent_title: Szülő oldal + field_is_private: Private issue label_issue_watchers: Megfigyelők setting_commit_logs_encoding: Commit üzenetek kódlapja button_quote: Hozzászólás / Idézet / Kérdés @@ -760,6 +763,8 @@ permission_edit_own_time_entries: Saját időnapló szerkesztése permission_manage_public_queries: Nyilvános kérések kezelése permission_add_issues: Feladat felvétele + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Idő rögzítése permission_view_changesets: Változáskötegek megtekintése permission_view_time_entries: Időrögzítések megtekintése diff -ur redmine-0.9.3/config/locales/id.yml redmine/config/locales/id.yml --- redmine-0.9.3/config/locales/id.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/id.yml 2010-04-23 16:56:13.753588934 +0400 @@ -273,6 +273,7 @@ field_default_value: Nilai default field_comments_sorting: Tampilkan komentar field_parent_title: Halaman induk + field_is_private: Private issue field_editable: Dapat disunting field_watcher: Pemantau field_identity_url: OpenID URL @@ -334,6 +335,8 @@ permission_manage_versions: Atur versi permission_manage_categories: Atur kategori masalah permission_add_issues: Tambahkan masalah + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Sunting masalah permission_manage_issue_relations: Atur kaitan masalah permission_add_issue_notes: Tambahkan catatan @@ -503,6 +506,8 @@ label_public_projects: Proyek publik label_open_issues: belum selesai label_open_issues_plural: belum selesai + label_private_issues: private + label_private_issues_plural: private label_closed_issues: selesai label_closed_issues_plural: selesai label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/it.yml redmine/config/locales/it.yml --- redmine-0.9.3/config/locales/it.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/it.yml 2010-04-23 16:56:13.795587858 +0400 @@ -373,6 +373,8 @@ label_public_projects: Progetti pubblici label_open_issues: aperta label_open_issues_plural: aperte + label_private_issues: private + label_private_issues_plural: private label_closed_issues: chiusa label_closed_issues_plural: chiuse label_x_open_issues_abbr_on_total: @@ -729,6 +731,7 @@ setting_mail_handler_api_key: Chiave API text_email_delivery_not_configured: "La consegna via e-mail non è configurata e le notifiche sono disabilitate.\nConfigura il tuo server SMTP in config/email.yml e riavvia l'applicazione per abilitarle." field_parent_title: Parent page + field_is_private: Private issue label_issue_watchers: Osservatori setting_commit_logs_encoding: Codifica dei messaggi di commit button_quote: Quota @@ -742,6 +745,8 @@ permission_edit_own_time_entries: Modifica propri time logs permission_manage_public_queries: Gestisci query pubbliche permission_add_issues: Aggiungi segnalazioni + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Segna tempo impiegato permission_view_changesets: Vedi changesets permission_view_time_entries: Vedi tempi impiegati @@ -894,4 +899,4 @@ permission_export_wiki_pages: Export wiki pages setting_cache_formatted_text: Cache formatted text permission_manage_project_activities: Manage project activities - \ No newline at end of file + diff -ur redmine-0.9.3/config/locales/ja.yml redmine/config/locales/ja.yml --- redmine-0.9.3/config/locales/ja.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/ja.yml 2010-04-23 16:56:13.837594341 +0400 @@ -301,6 +301,7 @@ field_default_value: デフォルト値 field_comments_sorting: コメントを表示 field_parent_title: 親ページ + field_is_private: Private issue field_editable: 編集可能 field_watcher: ウォッチャー field_identity_url: OpenID URL @@ -371,6 +372,8 @@ permission_manage_categories: チケットのカテゴリの管理 permission_view_issues: チケットの閲覧 permission_add_issues: チケットの追加 + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: チケットの編集 permission_manage_issue_relations: チケットの管理 permission_add_issue_notes: 注記の追加 @@ -542,6 +545,8 @@ label_public_projects: 公開プロジェクト label_open_issues: 未完了 label_open_issues_plural: 未完了 + label_private_issues: private + label_private_issues_plural: private label_closed_issues: 完了 label_closed_issues_plural: 完了 label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/ko.yml redmine/config/locales/ko.yml --- redmine-0.9.3/config/locales/ko.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/ko.yml 2010-04-23 16:56:13.839593793 +0400 @@ -321,6 +321,7 @@ field_searchable: 검색가능 field_comments_sorting: 댓글 정렬 field_parent_title: 상위 제목 + field_is_private: Private issue field_editable: 편집가능 field_watcher: 일감지킴이 field_identity_url: OpenID URL @@ -379,6 +380,8 @@ permission_manage_versions: 버전 관리 permission_manage_categories: 일감 범주 관리 permission_add_issues: 일감 추가 + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: 일감 편집 permission_manage_issue_relations: 일감 관계 관리 permission_add_issue_notes: 덧글 추가 @@ -545,6 +548,8 @@ label_public_projects: 공개 프로젝트 label_open_issues: 진행중 label_open_issues_plural: 진행중 + label_private_issues: private + label_private_issues_plural: private label_closed_issues: 완료됨 label_closed_issues_plural: 완료됨 label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/lt.yml redmine/config/locales/lt.yml --- redmine-0.9.3/config/locales/lt.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/lt.yml 2010-04-23 16:56:13.871595088 +0400 @@ -332,6 +332,7 @@ field_default_value: Numatytoji vertė field_comments_sorting: rodyti komentarus field_parent_title: Aukštesnio lygio puslapis + field_is_private: Private issue field_editable: Redaguojamas field_watcher: Stebėtojas field_identity_url: OpenID URL @@ -394,6 +395,8 @@ permission_manage_versions: Valdyti versijas permission_manage_categories: Valdyti darbų kategorijas permission_add_issues: Sukurti darbus + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Redaguoti darbus permission_manage_issue_relations: Valdyti darbų ryšius permission_add_issue_notes: Sukurti pastabas @@ -562,6 +565,8 @@ label_public_projects: Vieši projektai label_open_issues: atidaryta label_open_issues_plural: atidaryti + label_private_issues: private + label_private_issues_plural: private label_closed_issues: uždaryta label_closed_issues_plural: uždaryti label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/nl.yml redmine/config/locales/nl.yml --- redmine-0.9.3/config/locales/nl.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/nl.yml 2010-04-23 16:56:13.888599115 +0400 @@ -239,6 +239,7 @@ field_onthefly: On-the-fly aanmaken van een gebruiker field_parent: Subproject van field_parent_title: Bovenliggende pagina + field_is_private: Private issue field_password: Wachtwoord field_password_confirmation: Bevestigen field_port: Port @@ -477,6 +478,8 @@ label_not_equals: is niet gelijk label_open_issues: open label_open_issues_plural: open + label_private_issues: private + label_private_issues_plural: private label_optional_description: Optionele beschrijving label_options: Opties label_overall_activity: Activiteit @@ -629,6 +632,8 @@ permission_add_issue_notes: Voeg notities toe permission_add_issue_watchers: Voeg monitors toe permission_add_issues: Voeg issues toe + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_add_messages: Voeg berichten toe permission_browse_repository: Repository doorbladeren permission_comment_news: Nieuws commentaar geven diff -ur redmine-0.9.3/config/locales/no.yml redmine/config/locales/no.yml --- redmine-0.9.3/config/locales/no.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/no.yml 2010-04-23 16:56:13.906603267 +0400 @@ -407,6 +407,8 @@ label_public_projects: Offentlige prosjekt label_open_issues: åpen label_open_issues_plural: åpne + label_private_issues: private + label_private_issues_plural: private label_closed_issues: lukket label_closed_issues_plural: lukkede label_x_open_issues_abbr_on_total: @@ -717,6 +719,7 @@ setting_mail_handler_api_key: API key text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." field_parent_title: Parent page + field_is_private: Private issue label_issue_watchers: Watchers setting_commit_logs_encoding: Commit messages encoding button_quote: Quote @@ -730,6 +733,8 @@ permission_edit_own_time_entries: Edit own time logs permission_manage_public_queries: Manage public queries permission_add_issues: Add issues + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Log spent time permission_view_changesets: View changesets permission_view_time_entries: View spent time diff -ur redmine-0.9.3/config/locales/pl.yml redmine/config/locales/pl.yml --- redmine-0.9.3/config/locales/pl.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/pl.yml 2010-04-23 16:56:13.933605129 +0400 @@ -264,6 +264,7 @@ field_onthefly: Tworzenie użytkownika w locie field_parent: Nadprojekt field_parent_title: Strona rodzica + field_is_private: Private issue field_password: Hasło field_password_confirmation: Potwierdzenie field_port: Port @@ -514,6 +515,8 @@ label_not_equals: różni się label_open_issues: otwarte label_open_issues_plural234: otwarte + label_private_issues: private + label_private_issues_plural: private label_open_issues_plural5: otwarte label_open_issues_plural: otwarte label_optional_description: Opcjonalny opis @@ -668,6 +671,8 @@ permission_add_issue_notes: Dodawanie notatek permission_add_issue_watchers: Dodawanie obserwatorów permission_add_issues: Dodawanie zagadnień + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_add_messages: Dodawanie wiadomości permission_browse_repository: Przeglądanie repozytorium permission_comment_news: Komentowanie komunikatów diff -ur redmine-0.9.3/config/locales/pt-BR.yml redmine/config/locales/pt-BR.yml --- redmine-0.9.3/config/locales/pt-BR.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/pt-BR.yml 2010-04-23 16:56:13.967605989 +0400 @@ -286,6 +286,7 @@ field_default_value: Padrão field_comments_sorting: Visualizar comentários field_parent_title: Página pai + field_is_private: Private issue setting_app_title: Título da aplicação setting_app_subtitle: Sub-título da aplicação @@ -445,6 +446,8 @@ label_public_projects: Projetos públicos label_open_issues: Aberta label_open_issues_plural: Abertas + label_private_issues: private + label_private_issues_plural: private label_closed_issues: Fechada label_closed_issues_plural: Fechadas label_x_open_issues_abbr_on_total: @@ -763,6 +766,8 @@ permission_edit_own_time_entries: Editar o próprio tempo de trabalho permission_manage_public_queries: Gerenciar consultas publicas permission_add_issues: Adicionar tarefas + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Adicionar tempo gasto permission_view_changesets: Ver changesets permission_view_time_entries: Ver tempo gasto diff -ur redmine-0.9.3/config/locales/pt.yml redmine/config/locales/pt.yml --- redmine-0.9.3/config/locales/pt.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/pt.yml 2010-04-23 16:56:14.055602412 +0400 @@ -271,6 +271,7 @@ field_default_value: Valor por omissão field_comments_sorting: Mostrar comentários field_parent_title: Página pai + field_is_private: Private issue setting_app_title: Título da aplicação setting_app_subtitle: Sub-título da aplicação @@ -430,6 +431,8 @@ label_public_projects: Projectos públicos label_open_issues: aberto label_open_issues_plural: abertos + label_private_issues: private + label_private_issues_plural: private label_closed_issues: fechado label_closed_issues_plural: fechados label_x_open_issues_abbr_on_total: @@ -747,6 +750,8 @@ permission_edit_own_time_entries: Editar horas pessoais permission_manage_public_queries: Gerir queries públicas permission_add_issues: Adicionar tarefas + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Registar tempo gasto permission_view_changesets: Ver changesets permission_view_time_entries: Ver tempo gasto diff -ur redmine-0.9.3/config/locales/ro.yml redmine/config/locales/ro.yml --- redmine-0.9.3/config/locales/ro.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/ro.yml 2010-04-23 16:56:14.097601318 +0400 @@ -254,6 +254,7 @@ field_default_value: Valoare implicita field_comments_sorting: Afișează comentarii field_parent_title: Pagina superioara + field_is_private: Private issue field_editable: Modificabil field_watcher: Urmărește field_identity_url: URL OpenID @@ -308,6 +309,8 @@ permission_manage_versions: Editează versiuni permission_manage_categories: Editează categorii permission_add_issues: Adaugă tichete + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Editează tichete permission_manage_issue_relations: Editează relații tichete permission_add_issue_notes: Adaugă note @@ -474,6 +477,8 @@ label_public_projects: Proiecte publice label_open_issues: deschis label_open_issues_plural: deschise + label_private_issues: private + label_private_issues_plural: private label_closed_issues: închis label_closed_issues_plural: închise label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/ru.yml redmine/config/locales/ru.yml --- redmine-0.9.3/config/locales/ru.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/ru.yml 2010-04-23 16:56:14.139600008 +0400 @@ -346,6 +346,7 @@ field_port: Порт field_possible_values: Возможные значения field_priority: Приоритет + field_is_private: Частная задача field_project: Проект field_redirect_existing_links: Перенаправить существующие ссылки field_regexp: Регулярное выражение @@ -585,6 +586,10 @@ label_not_contains: не содержит label_not_equals: не соответствует label_open_issues: открыт + label_private_issues_plural2: частных + label_private_issues_plural5: частных + label_private_issues_plural: частных + label_private_issues: частная label_open_issues_plural: открыто label_open_issues_plural2: открыто label_open_issues_plural5: открыто @@ -762,6 +767,8 @@ permission_add_issues: Добавление задач permission_add_issue_notes: Добавление примечаний + permission_add_private_issues: Добавление частных задач + permission_view_private_issues: Просмотр частных задач permission_add_issue_watchers: Добавление наблюдателей permission_add_messages: Отправка сообщений permission_browse_repository: Просмотр хранилища Only in redmine-0.9.3/config/locales/: ru.yml.orig diff -ur redmine-0.9.3/config/locales/sk.yml redmine/config/locales/sk.yml --- redmine-0.9.3/config/locales/sk.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/sk.yml 2010-04-23 16:56:14.141599803 +0400 @@ -405,6 +405,8 @@ label_public_projects: Verejné projekty label_open_issues: Otvorený label_open_issues_plural: Otvorené + label_private_issues: private + label_private_issues_plural: private label_closed_issues: Uzavrený label_closed_issues_plural: Uzavrené label_x_open_issues_abbr_on_total: @@ -720,6 +722,7 @@ setting_mail_handler_api_key: API kľúč text_email_delivery_not_configured: "Doručenie emailov nieje nastavené, notifikácie sú vypnuté.\nNastavte váš SMTP server v config/email.yml a reštartnite aplikáciu pre aktiváciu funkcie." field_parent_title: Nadradená stránka + field_is_private: Private issue label_issue_watchers: Pozorovatelia setting_commit_logs_encoding: Kódovanie prenášaných správ button_quote: Citácia @@ -733,6 +736,8 @@ permission_edit_own_time_entries: Úprava vlastných zaznamov o strávenom čase permission_manage_public_queries: Správa verejných otáziek permission_add_issues: Pridanie úlohy + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Zaznamenávanie stráveného času permission_view_changesets: Zobrazenie sád zmien permission_view_time_entries: Zobrazenie stráveného času diff -ur redmine-0.9.3/config/locales/sl.yml redmine/config/locales/sl.yml --- redmine-0.9.3/config/locales/sl.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/sl.yml 2010-04-23 16:56:14.171601064 +0400 @@ -254,6 +254,7 @@ field_default_value: Privzeta vrednost field_comments_sorting: Prikaži komentarje field_parent_title: Matična stran + field_is_private: Private issue setting_app_title: Naslov aplikacije setting_app_subtitle: Podnaslov aplikacije @@ -301,6 +302,8 @@ permission_manage_versions: Uredi verzije permission_manage_categories: Urejanje kategorij zahtevkov permission_add_issues: Dodaj zahtevke + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Uredi zahtevke permission_manage_issue_relations: Uredi odnose med zahtevki permission_add_issue_notes: Dodaj zabeležke @@ -466,6 +469,8 @@ label_public_projects: Javni projekti label_open_issues: odpri zahtevek label_open_issues_plural: odpri zahtevke + label_private_issues: private + label_private_issues_plural: private label_closed_issues: zapri zahtevek label_closed_issues_plural: zapri zahtevke label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/sr.yml redmine/config/locales/sr.yml --- redmine-0.9.3/config/locales/sr.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/sr.yml 2010-04-23 16:56:14.188605464 +0400 @@ -389,6 +389,8 @@ label_public_projects: Javni projekti label_open_issues: Otvoren label_open_issues_plural: Otvoreno + label_private_issues: private + label_private_issues_plural: private label_closed_issues: Zatvoren label_closed_issues_plural: Zatvoreno label_x_open_issues_abbr_on_total: @@ -738,6 +740,7 @@ setting_mail_handler_api_key: API key text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." field_parent_title: Parent page + field_is_private: Private issue label_issue_watchers: Posmatrači setting_commit_logs_encoding: Commit messages encoding button_quote: Quote @@ -751,6 +754,8 @@ permission_edit_own_time_entries: Edit own time logs permission_manage_public_queries: Manage public queries permission_add_issues: Add issues + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Log spent time permission_view_changesets: View changesets permission_view_time_entries: View spent time diff -ur redmine-0.9.3/config/locales/sv.yml redmine/config/locales/sv.yml --- redmine-0.9.3/config/locales/sv.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/sv.yml 2010-04-23 16:56:14.206609256 +0400 @@ -321,6 +321,7 @@ field_default_value: Standardvärde field_comments_sorting: Visa kommentarer field_parent_title: Föräldersida + field_is_private: Private issue field_editable: Redigerbar field_watcher: Bevakare field_identity_url: OpenID URL @@ -389,6 +390,8 @@ permission_manage_versions: Hantera versioner permission_manage_categories: Hantera ärendekategorier permission_add_issues: Lägga till ärenden + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Ändra ärenden permission_view_issues: Visa ärenden permission_manage_issue_relations: Hantera ärenderelationer @@ -560,6 +563,8 @@ label_public_projects: Publika projekt label_open_issues: öppen label_open_issues_plural: öppna + label_private_issues: private + label_private_issues_plural: private label_closed_issues: stängd label_closed_issues_plural: stängda label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/th.yml redmine/config/locales/th.yml --- redmine-0.9.3/config/locales/th.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/th.yml 2010-04-23 16:56:14.232611780 +0400 @@ -405,6 +405,8 @@ label_public_projects: โครงการสาธารณะ label_open_issues: เปิด label_open_issues_plural: เปิด + label_private_issues: private + label_private_issues_plural: private label_closed_issues: ปิด label_closed_issues_plural: ปิด label_x_open_issues_abbr_on_total: @@ -719,6 +721,7 @@ setting_mail_handler_api_key: API key text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." field_parent_title: Parent page + field_is_private: Private issue label_issue_watchers: Watchers setting_commit_logs_encoding: Commit messages encoding button_quote: Quote @@ -732,6 +735,8 @@ permission_edit_own_time_entries: Edit own time logs permission_manage_public_queries: Manage public queries permission_add_issues: Add issues + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Log spent time permission_view_changesets: View changesets permission_view_time_entries: View spent time diff -ur redmine-0.9.3/config/locales/tr.yml redmine/config/locales/tr.yml --- redmine-0.9.3/config/locales/tr.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/tr.yml 2010-04-23 16:56:14.268611878 +0400 @@ -434,6 +434,8 @@ label_public_projects: Genel Projeler label_open_issues: açık label_open_issues_plural: açık + label_private_issues: private + label_private_issues_plural: private label_closed_issues: kapalı label_closed_issues_plural: kapalı label_x_open_issues_abbr_on_total: @@ -740,6 +742,7 @@ label_generate_key: Generate a key setting_sequential_project_identifiers: Generate sequential project identifiers field_parent_title: Parent page + field_is_private: Private issue text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." text_enumeration_category_reassign_to: 'Reassign them to this value:' label_issue_watchers: Watchers @@ -762,6 +765,8 @@ permission_edit_own_time_entries: Edit own time logs permission_manage_public_queries: Manage public queries permission_add_issues: Add issues + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Log spent time permission_view_changesets: View changesets permission_view_time_entries: View spent time diff -ur redmine-0.9.3/config/locales/uk.yml redmine/config/locales/uk.yml --- redmine-0.9.3/config/locales/uk.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/uk.yml 2010-04-23 16:56:14.356600479 +0400 @@ -375,6 +375,8 @@ label_public_projects: Публічні проекти label_open_issues: відкрите label_open_issues_plural: відкриті + label_private_issues: private + label_private_issues_plural: private label_closed_issues: закрите label_closed_issues_plural: закриті label_x_open_issues_abbr_on_total: @@ -718,6 +720,7 @@ setting_mail_handler_api_key: API key text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them." field_parent_title: Parent page + field_is_private: Private issue label_issue_watchers: Watchers setting_commit_logs_encoding: Commit messages encoding button_quote: Quote @@ -731,6 +734,8 @@ permission_edit_own_time_entries: Edit own time logs permission_manage_public_queries: Manage public queries permission_add_issues: Add issues + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_log_time: Log spent time permission_view_changesets: View changesets permission_view_time_entries: View spent time diff -ur redmine-0.9.3/config/locales/vi.yml redmine/config/locales/vi.yml --- redmine-0.9.3/config/locales/vi.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/vi.yml 2010-04-23 16:56:14.398599549 +0400 @@ -316,6 +316,7 @@ field_default_value: Giá trị mặc định field_comments_sorting: Liệt kê bình luận field_parent_title: Trang mẹ + field_is_private: Private issue setting_app_title: Tựa đề ứng dụng setting_app_subtitle: Tựa đề nhỏ của ứng dụng @@ -475,6 +476,8 @@ label_public_projects: Các dự án công cộng label_open_issues: mở label_open_issues_plural: mở + label_private_issues: private + label_private_issues_plural: private label_closed_issues: đóng label_closed_issues_plural: đóng label_x_open_issues_abbr_on_total: @@ -795,6 +798,8 @@ permission_manage_versions: Quản lý phiên bản permission_manage_categories: Quản lý chủ đề permission_add_issues: Thêm vấn đề + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: Sửa vấn đề permission_manage_issue_relations: Quản lý quan hệ vấn đề permission_add_issue_notes: Thêm chú thích diff -ur redmine-0.9.3/config/locales/zh-TW.yml redmine/config/locales/zh-TW.yml --- redmine-0.9.3/config/locales/zh-TW.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/zh-TW.yml 2010-04-23 16:56:14.440606118 +0400 @@ -362,6 +362,7 @@ field_default_value: 預設值 field_comments_sorting: 註解排序 field_parent_title: 父頁面 + field_is_private: Private issue field_editable: 可編輯 field_watcher: 觀察者 field_identity_url: OpenID 網址 @@ -431,6 +432,8 @@ permission_manage_categories: 管理項目分類 permission_view_issues: 檢視項目 permission_add_issues: 新增項目 + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: 編輯項目 permission_manage_issue_relations: 管理項目關聯 permission_add_issue_notes: 新增筆記 @@ -602,6 +605,8 @@ label_public_projects: 公開專案 label_open_issues: 進行中 label_open_issues_plural: 進行中 + label_private_issues: private + label_private_issues_plural: private label_closed_issues: 已結束 label_closed_issues_plural: 已結束 label_x_open_issues_abbr_on_total: diff -ur redmine-0.9.3/config/locales/zh.yml redmine/config/locales/zh.yml --- redmine-0.9.3/config/locales/zh.yml 2010-02-28 13:28:08.000000000 +0300 +++ redmine/config/locales/zh.yml 2010-04-23 16:56:14.481613357 +0400 @@ -294,6 +294,7 @@ field_default_value: 默认值 field_comments_sorting: 显示注释 field_parent_title: 上级页面 + field_is_private: Private issue field_editable: 可编辑 field_watcher: 跟踪者 field_identity_url: OpenID URL @@ -363,6 +364,8 @@ permission_manage_categories: 管理问题类别 permission_view_issues: 查看问题 permission_add_issues: 新建问题 + permission_add_private_issues: Add private issues + permission_view_private_issues: View private issues permission_edit_issues: 更新问题 permission_manage_issue_relations: 管理问题关联 permission_add_issue_notes: 添加说明 @@ -533,6 +536,8 @@ label_public_projects: 公开的项目 label_open_issues: 打开 label_open_issues_plural: 打开 + label_private_issues: private + label_private_issues_plural: private label_closed_issues: 已关闭 label_closed_issues_plural: 已关闭 label_x_open_issues_abbr_on_total: @@ -909,4 +914,4 @@ permission_export_wiki_pages: Export wiki pages setting_cache_formatted_text: Cache formatted text permission_manage_project_activities: Manage project activities - \ No newline at end of file + diff -urN redmine-0.9.3/db/migrate/109_add_issues_private_flag.rb redmine/db/migrate/109_add_issues_private_flag.rb --- redmine-0.9.3/db/migrate/109_add_issues_private_flag.rb 1970-01-01 03:00:00.000000000 +0300 +++ redmine/db/migrate/109_add_issues_private_flag.rb 2010-04-17 12:04:23.295584721 +0400 @@ -0,0 +1,9 @@ +class AddIssuesPrivateFlag < ActiveRecord::Migration + def self.up + add_column :issues, :is_private, :boolean, :default => false, :null => false + end + + def self.down + remove_column :issues, :is_private + end +end diff -ur redmine-0.9.3/lib/redmine.rb redmine/lib/redmine.rb --- redmine-0.9.3/lib/redmine.rb 2010-02-28 13:28:08.000000000 +0300 +++ redmine/lib/redmine.rb 2010-04-17 15:21:50.023014599 +0400 @@ -44,6 +44,8 @@ :queries => :index, :reports => :issue_report} map.permission :add_issues, {:issues => [:new, :update_form]} + map.permission :add_private_issues, {:issues => [:new, :update_form]}, :require => :loggedin + map.permission :view_private_issues, {}, :require => :member map.permission :edit_issues, {:issues => [:edit, :reply, :bulk_edit, :update_form]} map.permission :manage_issue_relations, {:issue_relations => [:new, :destroy]} map.permission :add_issue_notes, {:issues => [:edit, :reply]} diff -ur redmine-0.9.3/test/fixtures/issues.yml redmine/test/fixtures/issues.yml --- redmine-0.9.3/test/fixtures/issues.yml 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/fixtures/issues.yml 2010-04-23 17:45:55.155305374 +0400 @@ -203,3 +203,18 @@ assigned_to_id: author_id: 2 status_id: 1 +issues_014: + created_on: <%= 5.days.ago.to_date.to_s(:db) %> + project_id: 1 + updated_on: <%= 2.days.ago.to_date.to_s(:db) %> + priority_id: 5 + subject: Private Issue + id: 14 + fixed_version_id: + category_id: + description: Private Issue + tracker_id: 1 + assigned_to_id: + author_id: 12 + status_id: 1 + is_private: 1 diff -ur redmine-0.9.3/test/fixtures/member_roles.yml redmine/test/fixtures/member_roles.yml --- redmine-0.9.3/test/fixtures/member_roles.yml 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/fixtures/member_roles.yml 2010-04-17 12:04:23.296584517 +0400 @@ -47,3 +47,13 @@ role_id: 2 member_id: 10 inherited_from: 10 +member_roles_012: + id: 12 + role_id: 3 + member_id: 11 + inherited_from: 11 +member_roles_013: + id: 13 + role_id: 6 + member_id: 12 + inherited_from: 12 diff -ur redmine-0.9.3/test/fixtures/members.yml redmine/test/fixtures/members.yml --- redmine-0.9.3/test/fixtures/members.yml 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/fixtures/members.yml 2010-04-17 12:04:23.297584144 +0400 @@ -60,3 +60,13 @@ project_id: 2 user_id: 8 mail_notification: false +members_011: + id: 11 + created_on: 2006-07-19 19:35:37 +02:00 + project_id: 1 + user_id: 12 +members_012: + id: 12 + created_on: 2006-07-19 19:35:47 +02:00 + project_id: 1 + user_id: 13 diff -ur redmine-0.9.3/test/fixtures/roles.yml redmine/test/fixtures/roles.yml --- redmine-0.9.3/test/fixtures/roles.yml 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/fixtures/roles.yml 2010-04-17 12:04:23.297584144 +0400 @@ -12,6 +12,8 @@ - :manage_categories - :view_issues - :add_issues + - :add_private_issues + - :view_private_issues - :edit_issues - :manage_issue_relations - :add_issue_notes @@ -63,6 +65,7 @@ - :manage_categories - :view_issues - :add_issues + - :view_private_issues - :edit_issues - :manage_issue_relations - :add_issue_notes @@ -106,6 +109,7 @@ - :manage_categories - :view_issues - :add_issues + - :add_private_issues - :edit_issues - :manage_issue_relations - :add_issue_notes @@ -181,4 +185,41 @@ - :view_changesets position: 5 +roles_006: + name: Reporter2 + id: 6 + builtin: 0 + permissions: | + --- + - :edit_project + - :manage_members + - :manage_versions + - :manage_categories + - :view_issues + - :add_private_issues + - :edit_issues + - :manage_issue_relations + - :add_issue_notes + - :move_issues + - :view_issue_watchers + - :save_queries + - :view_gantt + - :view_calendar + - :log_time + - :view_time_entries + - :manage_news + - :comment_news + - :view_documents + - :manage_documents + - :view_wiki_pages + - :view_wiki_edits + - :edit_wiki_pages + - :delete_wiki_pages + - :add_messages + - :manage_boards + - :view_files + - :manage_files + - :browse_repository + - :view_changesets + position: 6 diff -ur redmine-0.9.3/test/fixtures/users.yml redmine/test/fixtures/users.yml --- redmine-0.9.3/test/fixtures/users.yml 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/fixtures/users.yml 2010-04-17 12:04:23.298583951 +0400 @@ -152,5 +152,35 @@ id: 11 lastname: B Team type: Group - - \ No newline at end of file +users_012: + id: 12 + created_on: 2009-01-27 01:20:19 +03:00 + status: 1 + last_login_on: + language: 'ru' + hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415 + updated_on: 2009-01-27 19:33:19 +03:00 + admin: false + mail: vasja@somenet.foo + lastname: Pupkin + firstname: Vasja + auth_source_id: + mail_notification: true + login: vasiliy + type: User +users_013: + id: 13 + created_on: 2009-01-27 01:20:29 +03:00 + status: 1 + last_login_on: + language: 'ru' + hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192416 + updated_on: 2009-01-27 19:33:29 +03:00 + admin: false + mail: petia@somenet.foo + lastname: Pupkin + firstname: Petia + auth_source_id: + mail_notification: true + login: petr + type: User diff -ur redmine-0.9.3/test/functional/issues_controller_test.rb redmine/test/functional/issues_controller_test.rb --- redmine-0.9.3/test/functional/issues_controller_test.rb 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/functional/issues_controller_test.rb 2010-04-23 17:45:55.156305111 +0400 @@ -411,6 +411,7 @@ def test_show_should_deny_member_access_without_permission Role.find(1).remove_permission!(:view_issues) + Role.find(1).remove_permission!(:view_private_issues) @request.session[:user_id] = 2 get :show, :id => 1 assert_response 403 @@ -458,6 +459,55 @@ assert_not_nil assigns(:issue) end + def test_show_private_issue_by_manager + @request.session[:user_id] = 2 + get :show, :id => 14 + assert_response :success + assert_tag :td, :attributes => { :class => 'private-issue'} + end + + def test_show_private_issue_by_admin + @request.session[:user_id] = 1 + get :show, :id => 14 + assert_response :success + assert_tag :td, :attributes => { :class => 'private-issue'} + end + + def test_show_private_issue_by_developer + @request.session[:user_id] = 3 + get :show, :id => 14 + assert_response :success + # Developer can view private issues + assert_tag :td, :attributes => { :class => 'private-issue'} + end + + def test_show_private_issue_by_issue_author + # issue author always can browse his issue + @request.session[:user_id] = 12 + get :show, :id => 14 + assert_response :success + assert_tag :input, :attributes => { :name => 'issue[is_private]'} + assert_tag :td, :attributes => { :class => 'private-issue'} + end + + def test_show_private_issue_by_other_member + # Reporter2 not can browse his issue + @request.session[:user_id] = 13 + get :show, :id => 14 + assert_response 403 + end + + def test_show_private_issue_by_non_member + @request.session[:user_id] = 4 + get :show, :id => 14 + assert_response 403 + end + + def test_show_private_issue_by_anonymous + get :show, :id => 14 + assert_response 403 + end + def test_get_new @request.session[:user_id] = 2 get :new, :project_id => 1, :tracker_id => 1 @@ -468,6 +518,49 @@ :value => 'Default string' } end + def test_get_new_manager + # Manager have add_private_issue permission + @request.session[:user_id] = 2 + get :new, :project_id => 1, :tracker_id => 1 + assert_response :success + assert_template 'new' + assert_tag :input, :attributes => { :name => 'issue[is_private]'} + end + + def test_get_new_developer + @request.session[:user_id] = 3 + get :new, :project_id => 1, :tracker_id => 1 + assert_response :success + assert_template 'new' + # Developer can't change issue type + assert_no_tag :input, :attributes => { :name => 'issue[is_private]'} + end + + def test_get_new_reporter + @request.session[:user_id] = 12 + get :new, :project_id => 1, :tracker_id => 1 + assert_response :success + assert_template 'new' + # Reporter can add private issue + assert_tag :input, :attributes => { :name => 'issue[is_private]'} + end + + def test_get_new_admin + @request.session[:user_id] = 1 + get :new, :project_id => 1, :tracker_id => 1 + assert_response :success + assert_template 'new' + assert_tag :input, :attributes => { :name => 'issue[is_private]'} + end + + def test_get_new_reporter2 + @request.session[:user_id] = 13 + get :new, :project_id => 1, :tracker_id => 1 + assert_response :success + assert_template 'new' + assert_no_tag :input, :attributes => { :name => 'issue[is_private]'} + end + def test_get_new_without_tracker_id @request.session[:user_id] = 2 get :new, :project_id => 1 diff -ur redmine-0.9.3/test/functional/projects_controller_test.rb redmine/test/functional/projects_controller_test.rb --- redmine-0.9.3/test/functional/projects_controller_test.rb 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/functional/projects_controller_test.rb 2010-04-17 12:04:23.300583498 +0400 @@ -575,6 +575,82 @@ } end + #private issue are not visible for Anonymous user in global Activity + def test_private_issue_global_activity_for_anonymous + get :activity + assert_response :success + assert_template 'activity' + assert_not_nil assigns(:events_by_day) + + assert_no_tag :tag => "h3", + :content => /#{5.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(14).subject}/, + } + } + } + end + + def test_private_issue_global_activity_for_manager + @request.session[:user_id] = 2 # manager + get :activity + assert_response :success + assert_template 'activity' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{5.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(14).subject}/, + } + } + } + end + + def test_private_issue_global_activity_for_developer + @request.session[:user_id] = 3 # developer + get :activity + assert_response :success + assert_template 'activity' + assert_not_nil assigns(:events_by_day) + + assert_tag :tag => "h3", + :content => /#{5.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(14).subject}/, + } + } + } + end + + def test_private_issue_global_activity_for_non_member + @request.session[:user_id] = 4 # does not have any role in project #1 + get :activity + assert_response :success + assert_template 'activity' + assert_not_nil assigns(:events_by_day) + + assert_no_tag :tag => "h3", + :content => /#{5.day.ago.to_date.day}/, + :sibling => { :tag => "dl", + :child => { :tag => "dt", + :attributes => { :class => /issue/ }, + :child => { :tag => "a", + :content => /#{Issue.find(14).subject}/, + } + } + } + end + def test_user_activity get :activity, :user_id => 2 assert_response :success diff -ur redmine-0.9.3/test/unit/issue_test.rb redmine/test/unit/issue_test.rb --- redmine-0.9.3/test/unit/issue_test.rb 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/unit/issue_test.rb 2010-04-23 17:50:04.686952286 +0400 @@ -499,6 +499,54 @@ assert !Issue.new(:due_date => 1.day.ago.to_date, :status => IssueStatus.find(:first, :conditions => {:is_closed => true})).overdue? end + def test_default_assign + # Test fixtures contain "add_private_issues" permissions + # Anonimous + issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 6, :status_id => 1, :is_private => true, :priority => IssuePriority.all.first, :subject => 'test_private_create', :description => 'IssueTest#test_private_create', :estimated_hours => '5:30') + assert issue.save + issue.reload + assert_equal false, issue.is_private + # Manager + issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 2, :status_id => 1, :is_private => true, :priority => IssuePriority.all.first, :subject => 'test_private_create', :description => 'IssueTest#test_private_create', :estimated_hours => '5:30') + assert issue.save + issue.reload + assert_equal true, issue.is_private + issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 2, :status_id => 1, :is_private => false, :priority => IssuePriority.all.first, :subject => 'test_private_create', :description => 'IssueTest#test_private_create', :estimated_hours => '5:30') + assert issue.save + issue.reload + assert_equal false, issue.is_private + # Reporter_is_private + issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 13, :status_id => 1, :is_private => false, :priority => IssuePriority.all.first, :subject => 'test_private_create', :description => 'IssueTest#test_private_create', :estimated_hours => '5:30') + assert issue.save + issue.reload + assert_equal true, issue.is_private + end + + def test_visible + issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 13, :status_id => 1, :is_private => true, :priority => IssuePriority.all.first, :subject => 'test_private_create', :description => 'IssueTest#test_private_create', :estimated_hours => '5:30') + assert issue.save + issue.reload + # Test fixtures contain "view_private_issues" permissions + # User with id #2 has Manager role + assert_equal true, issue.visible?(User.find(2)) + # User with id #3 has Developer role + assert_equal true, issue.visible?(User.find(3)) + # User with id #6 has Anonymous role + assert_equal false, issue.visible?(User.find(6)) + # User with id #4 does not have any role in project + assert_equal false, issue.visible?(User.find(4)) + # User with id #12 has Reporter role + assert_equal false, issue.visible?(User.find(12)) + # Test for author + assert_equal true, issue.visible?(User.find(13)) + # Test for assinged user #4 + issue.assigned_to=User.find(4) + assert_equal true, issue.visible?(User.find(4)) + # Test for watcher #12 + issue.add_watcher(User.find(12)) + assert_equal true, issue.visible?(User.find(12)) + end + def test_assignable_users assert_kind_of User, Issue.find(1).assignable_users.first end Only in redmine/test/unit: issue_test.rb.orig Only in redmine/test/unit: issue_test.rb.rej diff -ur redmine-0.9.3/test/unit/project_test.rb redmine/test/unit/project_test.rb --- redmine-0.9.3/test/unit/project_test.rb 2010-02-28 13:28:05.000000000 +0300 +++ redmine/test/unit/project_test.rb 2010-04-17 12:04:23.302583193 +0400 @@ -136,10 +136,10 @@ end def test_destroy - # 2 active members - assert_equal 2, @ecookbook.members.size + # 4 active members + assert_equal 4, @ecookbook.members.size # and 1 is locked - assert_equal 3, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size + assert_equal 5, Member.find(:all, :conditions => ['project_id = ?', @ecookbook.id]).size # some boards assert @ecookbook.boards.any?