Commit ba519042afe9eb7dc1b69303dbaa5746538b52ca

Authored by Victor Costa
1 parent d00c6e8c

Display button to export comments only to users with permission to edit article

src/plugins/comment_paragraph/hotspot/export-comment-button.component.spec.ts
@@ -3,15 +3,16 @@ import {ComponentTestHelper, createClass} from '../../../spec/component-test-hel @@ -3,15 +3,16 @@ import {ComponentTestHelper, createClass} from '../../../spec/component-test-hel
3 import * as helpers from "../../../spec/helpers"; 3 import * as helpers from "../../../spec/helpers";
4 import {Provider} from 'ng-forward'; 4 import {Provider} from 'ng-forward';
5 import {ComponentFixture} from 'ng-forward/cjs/testing/test-component-builder'; 5 import {ComponentFixture} from 'ng-forward/cjs/testing/test-component-builder';
  6 +import {PermissionDirective} from '../../../app/shared/components/permission/permission.directive';
6 7
7 let htmlTemplate = '<export-comment-button-hotspot [article]="ctrl.article"></export-comment-button-hotspot>'; 8 let htmlTemplate = '<export-comment-button-hotspot [article]="ctrl.article"></export-comment-button-hotspot>';
8 9
9 describe("Components", () => { 10 describe("Components", () => {
10 describe("Export Comment Button Hotspot Component", () => { 11 describe("Export Comment Button Hotspot Component", () => {
11 12
12 - let serviceMock = jasmine.createSpyObj("CommentParagraphService", [ "getArticle" ]); 13 + let serviceMock = jasmine.createSpyObj("CommentParagraphService", ["getArticle"]);
13 14
14 - let providers = [ new Provider('CommentParagraphService', { useValue: serviceMock }) ] 15 + let providers = [new Provider('CommentParagraphService', { useValue: serviceMock })]
15 .concat(helpers.provideFilters('translateFilter')); 16 .concat(helpers.provideFilters('translateFilter'));
16 let helper: ComponentTestHelper<ExportCommentButtonHotspotComponent>; 17 let helper: ComponentTestHelper<ExportCommentButtonHotspotComponent>;
17 18
@@ -20,7 +21,7 @@ describe(&quot;Components&quot;, () =&gt; { @@ -20,7 +21,7 @@ describe(&quot;Components&quot;, () =&gt; {
20 beforeEach((done) => { 21 beforeEach((done) => {
21 let cls = createClass({ 22 let cls = createClass({
22 template: htmlTemplate, 23 template: htmlTemplate,
23 - directives: [ExportCommentButtonHotspotComponent], 24 + directives: [ExportCommentButtonHotspotComponent, PermissionDirective],
24 providers: providers, 25 providers: providers,
25 properties: { 26 properties: {
26 article: {} 27 article: {}
@@ -48,5 +49,10 @@ describe(&quot;Components&quot;, () =&gt; { @@ -48,5 +49,10 @@ describe(&quot;Components&quot;, () =&gt; {
48 expect(helper.all('.export-comment-button').length).toEqual(0); 49 expect(helper.all('.export-comment-button').length).toEqual(0);
49 }); 50 });
50 51
  52 + it('not display export comment button when user does not have permission', () => {
  53 + helper.component.article = <noosfero.Article>{ setting: { comment_paragraph_plugin_activate: true } };
  54 + helper.detectChanges();
  55 + expect(helper.find('.export-comment-button').attr('style')).toEqual("display: none; ");
  56 + });
51 }); 57 });
52 }); 58 });
src/plugins/comment_paragraph/hotspot/export-comment-button.html
1 <a href='{{ctrl.exportCommentPath}}' target="_self" 1 <a href='{{ctrl.exportCommentPath}}' target="_self"
2 - class="btn btn-default btn-xs export-comment-button" ng-if="ctrl.isActivated()"> 2 + class="btn btn-default btn-xs export-comment-button" ng-if="ctrl.isActivated()"
  3 + permission="ctrl.article.permissions" permission-action="allow_edit">
3 <i class="fa fa-fw fa-download"></i> {{"comment-paragraph-plugin.export" | translate}} 4 <i class="fa fa-fw fa-download"></i> {{"comment-paragraph-plugin.export" | translate}}
4 </a> 5 </a>
5 -