Beispiel #1
0
 validators: [function(doc, val, raw) {
     if (!permissions.hasRole('_admin')) {
         // user is not admin, check page _id
         var restricted = ["TAPIRWIKISETTINGS", "NewPage"];
         for (i in restricted) {
             if (val == restricted[i]) throw new Error("Restricted _id: " + restricted[i] + ". Not allowed to modify.");
         }
     }
 }]
Beispiel #2
0
/**
 * Kanso document types to export
 */

var Type = require('couchtypes/types').Type,
    fields = require('couchtypes/fields'),
    widgets = require('couchtypes/widgets'),
    permissions = require('couchtypes/permissions'),
    editorRole = 'wikieditor';

exports.page = new Type('page', {
    permissions: {
        add: permissions.hasRole(editorRole),
        update: permissions.hasRole(editorRole),
        remove: permissions.hasRole(editorRole)
    },
    fields: {
        _id: fields.string({
            validators: [function(doc, val, raw) {
                if (!permissions.hasRole('_admin')) {
                    // user is not admin, check page _id
                    var restricted = ["TAPIRWIKISETTINGS", "NewPage"];
                    for (i in restricted) {
                        if (val == restricted[i]) throw new Error("Restricted _id: " + restricted[i] + ". Not allowed to modify.");
                    }
                }
            }]
        }),
        body: fields.string(),
        edited_by: fields.string(),
        edited_on: fields.string()
Beispiel #3
0
    usernameNotMatchesField('editableBy')
  ]);
}

var canEdit = function() {
  return permissions.any([
    permissions.usernameMatchesField('editableBy'),
    utils.roleMatchesField('editableBy'),
  ]);
}

exports.transaction = new Type('transaction', {
  permissions: {
    add:    permissions.loggedIn(),
    update: permissions.loggedIn(),
    remove: permissions.hasRole('_admin')
  },
  fields: {
    id:             idField(/\w+/),
    to:             fields.string({
      permissions: {
        update: permissions.fieldUneditable(),
      },
    }),
    editableBy:       fields.string({
      permissions: {
        update: permissions.fieldUneditable(),
      },
    }),
    declaredBy:    fields.creator(),
    from:           fields.string({
var permissions = require('couchtypes/permissions'),
    fields = require('couchtypes/fields'),
    Type = require('couchtypes/types').Type;


exports['duality-contrib-comments:comment'] = new Type(
    'duality-contrib-comments:comment',
    {
        permissions: {
            add: permissions.loggedIn(),
            update: permissions.hasRole('_admin'),
            delete: permissions.any([
                permissions.usernameMatchesField('user'),
                permissions.hasRole('_admin')
            ])
        },
        fields: {
            user: fields.creator(),
            text: fields.string(),
            time: fields.string(),
            target: fields.string()
        }
    }
);
var Type        = require('couchtypes/types').Type;
var fields      = require('couchtypes/fields');
var permissions = require('couchtypes/permissions');
var idField     = require('../ITS/fields').idField;


exports.notification = new Type('notification', {
  permissions: {
    add: permissions.hasRole('notification_manager'),
    update: permissions.hasRole('notification_manager'),
    remove: permissions.hasRole('notification_manager')
  },
  fields: {
    id: idField(/\d+\-<subscriber>/),
    subscriber: fields.string(),
    message_txt: fields.string({
      require: false
    }),
    message_html: fields.string({
      require: false
    }),
    subject: fields.string({
      require: false
    }),
    created_at: fields.createdTime(),
    displayed: fields.boolean({
      default_value: function (req) {
        return false;
      },
      permissions: {
        update: permissions.usernameMatchesField('subscriber'),