- Modified privacywrite query with graphLookup:

$graphLookup: {
        from: "projects",
        startWith: "$id_main_project",
        connectFromField: "id_main_project",
        connectToField: "_id",
        as: "ris",
        restrictSearchWithMatch: { $or: [{ privacyread: server_constants.Privacy.all }, { userId: userId }] }
      }
    },
    { $match: { "ris.privacyread": { $exists: true } } },
This commit is contained in:
Paolo Arena
2019-04-13 03:04:40 +02:00
parent 7b1e24c407
commit 3c05d2d9c7
10 changed files with 94 additions and 95 deletions

View File

@@ -102,7 +102,7 @@ export default class ProjList extends Vue {
get CanIModifyPanelPrivacy() {
if (UserStore.state.userId === this.itemselproj.userId) // If it's the owner
if ((UserStore.state.userId === this.itemselproj.userId) || (this.itemselproj.privacywrite === Privacy.all)) // If it's the owner
return true
}
@@ -357,7 +357,10 @@ export default class ProjList extends Vue {
myobj.id_main_project = this.idProjAtt
} else {
myobj.typeproj = TypeProj.TYPE_SUBDIR
myobj.id_main_project = this.itemproj.id_main_project
if (this.itemproj.id_main_project === process.env.PROJECT_ID_MAIN)
myobj.id_main_project = this.itemproj._id
else
myobj.id_main_project = this.itemproj.id_main_project
}
if (!tools.checkIfUserExist(this)) {
@@ -392,6 +395,8 @@ export default class ProjList extends Vue {
public deselectAllRowstodo(item: ITodo, check, onlythis: boolean = false) {
console.log('PROJ-LIST deselectAllRowstodo : ', item)
return false
// @ts-ignore
for (const i in this.$refs.ctodo.$refs.single) {
// @ts-ignore
@@ -418,7 +423,7 @@ export default class ProjList extends Vue {
}
public deselectAllRowsproj(item: IProject, check, onlythis: boolean = false) {
// console.log('deselectAllRowsproj: ', item)
console.log('deselectAllRowsproj: ', item)
for (const i in this.$refs.singleproject) {

View File

@@ -176,14 +176,14 @@
<div class="flex-container clMain">
<q-icon class="flex-item flex-icon" name="developer_mode"/>
<div class="flex-item itemdata">
<CDate :mydate="itemselproj.begin_development"
<CDate :readonly="readonly_PanelPrivacy" :mydate="itemselproj.begin_development"
@input="itemselproj.begin_development = new Date(arguments[0])"
:label="$t('proj.begin_development')">
</CDate>
</div>
<div style="margin: 10px;"></div>
<div class="flex-item itemdata">
<CDate :mydate="itemselproj.begin_test"
<CDate :readonly="readonly_PanelPrivacy" :mydate="itemselproj.begin_test"
@input="itemselproj.begin_test = new Date(arguments[0])"
:label="$t('proj.begin_test')">
</CDate>
@@ -192,13 +192,13 @@
<div class="flex-container clMain">
<q-icon class="flex-item flex-icon" name="outlined_flag"/>
<div class="flex-item itemstatus">
<q-select rounded outlined v-model="itemselproj.actualphase" :options="selectPhase"
<q-select :readonly="readonly_PanelPrivacy" rounded outlined v-model="itemselproj.actualphase" :options="selectPhase"
:label="$t('proj.actualphase')" emit-value map-options>
</q-select>
</div>
<q-icon class="flex-item flex-icon" name="outlined_flag"/>
<div class="flex-item itemstatus">
<q-select rounded outlined v-model="itemselproj.totalphases" :options="selectPhase"
<q-select :readonly="readonly_PanelPrivacy" rounded outlined v-model="itemselproj.totalphases" :options="selectPhase"
:label="$t('proj.totalphases')" emit-value map-options>
</q-select>
</div>
@@ -208,6 +208,7 @@
<q-icon class="flex-item flex-icon" name="watch_later"/>
<div class="flex-item itemdata content-center">
<q-input
:readonly="readonly_PanelPrivacy"
ref="input3"
type="number"
v-model="itemselproj.hoursweeky_plannedtowork"