Browse Source

[After update wekan to 5.57] Edit profil and change pswd menus are not displayed when SSO authentication is used

Emile NDAGIJIMANA 3 years ago
parent
commit
55296b676b

+ 12 - 28
client/components/boards/boardsList.js

@@ -86,58 +86,42 @@ BlazeComponent.extendComponent({
     });
   },
   userHasTeams(){
-    if(Meteor.user().teams)
-    {
+    if(Meteor.user().teams && Meteor.user().teams.length > 0)
       return true;
-    }
-    else{
+    else
       return false;
-    }
   },
   teamsDatas() {
     if(Meteor.user().teams)
-    {
       return Meteor.user().teams;
-    }
-    else{
+    else
       return [];
-    }
   },
   userHasOrgs(){
-    if(Meteor.user().orgs)
-    {
+    if(Meteor.user().orgs && Meteor.user().orgs.length > 0)
       return true;
-    }
-    else{
+    else
       return false;
-    }
   },
   orgsDatas() {
     if(Meteor.user().orgs)
-    {
       return Meteor.user().orgs;
-    }
-    else{
+    else
       return [];
-    }
   },
   userHasOrgsOrTeams(){
     let boolUserHasOrgs;
-    if(Meteor.user().orgs)
-    {
+    if(Meteor.user().orgs && Meteor.user().orgs.length > 0)
       boolUserHasOrgs = true;
-    }
-    else{
+    else
       boolUserHasOrgs = false;
-    }
+
     let boolUserHasTeams;
-    if(Meteor.user().teams)
-    {
+    if(Meteor.user().teams && Meteor.user().teams.length > 0)
       boolUserHasTeams = true;
-    }
-    else{
+    else
       boolUserHasTeams = false;
-    }
+
     return (boolUserHasOrgs || boolUserHasTeams);
   },
   boards() {

+ 22 - 20
client/components/sidebar/sidebar.jade

@@ -31,26 +31,28 @@ template(name='homeSidebar')
     +activities(mode="board")
 
 template(name="membersWidget")
-  .board-widget.board-widget-members
-    h3
-      i.fa.fa-users
-      | {{_ 'organizations'}}
-
-    .board-widget-content
-      +boardOrgGeneral
-      .clearfix
-  br
-  hr
-  .board-widget.board-widget-members
-    h3
-      i.fa.fa-users
-      | {{_ 'teams'}}
-
-    .board-widget-content
-      +boardTeamGeneral
-      .clearfix
-  br
-  hr
+  if AtLeastOneOrgWasCreated
+    .board-widget.board-widget-members
+      h3
+        i.fa.fa-users
+        | {{_ 'organizations'}}
+
+      .board-widget-content
+        +boardOrgGeneral
+        .clearfix
+    br
+    hr
+  if AtLeastOneTeamWasCreated
+    .board-widget.board-widget-members
+      h3
+        i.fa.fa-users
+        | {{_ 'teams'}}
+
+      .board-widget-content
+        +boardTeamGeneral
+        .clearfix
+    br
+    hr
   .board-widget.board-widget-members
     h3
       i.fa.fa-users

+ 52 - 0
client/components/sidebar/sidebar.js

@@ -183,6 +183,7 @@ Template.memberPopup.helpers({
   },
 });
 
+
 Template.boardMenuPopup.events({
   'click .js-rename-board': Popup.open('boardChangeTitle'),
   'click .js-open-rules-view'() {
@@ -290,6 +291,42 @@ Template.leaveBoardPopup.helpers({
     return Boards.findOne(Session.get('currentBoard'));
   },
 });
+BlazeComponent.extendComponent({
+  onCreated() {
+    this.error = new ReactiveVar('');
+    this.loading = new ReactiveVar(false);
+    this.findOrgsOptions = new ReactiveVar({});
+    this.findTeamsOptions = new ReactiveVar({});
+
+    this.page = new ReactiveVar(1);
+    this.teamPage = new ReactiveVar(1);
+    this.autorun(() => {
+      const limitOrgs = this.page.get() * Number.MAX_SAFE_INTEGER;
+      this.subscribe('org', this.findOrgsOptions.get(), limitOrgs, () => {});
+    });
+
+    this.autorun(() => {
+      const limitTeams = this.teamPage.get() * Number.MAX_SAFE_INTEGER;
+      this.subscribe('team', this.findTeamsOptions.get(), limitTeams, () => {});
+    });
+  },
+
+  onRendered() {
+    this.setLoading(false);
+  },
+
+  setError(error) {
+    this.error.set(error);
+  },
+
+  setLoading(w) {
+    this.loading.set(w);
+  },
+
+  isLoading() {
+    return this.loading.get();
+  },
+}).register('membersWidget');
 
 Template.membersWidget.helpers({
   isInvited() {
@@ -307,6 +344,21 @@ Template.membersWidget.helpers({
   isBoardAdmin() {
     return Meteor.user().isBoardAdmin();
   },
+  AtLeastOneOrgWasCreated(){
+    let orgs = Org.find({}, {sort: { createdAt: -1 }});
+    if(orgs === undefined)
+      return false;
+
+    return orgs.count() > 0;
+  },
+
+  AtLeastOneTeamWasCreated(){
+    let teams = Team.find({}, {sort: { createdAt: -1 }});
+    if(teams === undefined)
+      return false;
+
+    return teams.count() > 0;
+  },
 });
 
 Template.membersWidget.events({