# j-PermissionsOP

> Επεξεργασία ρόλων, ομάδων και αδειών χρήστη για εφαρμογές OpenPlatform.

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: el
Content-SHA256: 4d090d4a37283f2688ca3fe75481751787083e48619680ea37bdbf165a2d5ff2
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: usage-reviewed

Το στοιχείο επεξεργάζεται δικαιώματα χρηστών, ρόλων και ομάδων του OpenPlatform. Συνδέστε τα επιλεγμένα δικαιώματα με μια διαδρομή του μοντέλου και ρυθμίστε τα endpoints `find` και `read`. Το μοντέλο περιέχει συμβολοσειρές δικαιωμάτων:

```
['C@admin', 'U@admin', 'R@admin', 'D@admin', 'R123456', 'R#employees']
```

- Το πρώτο γράμμα σημαίνει επιτρεπόμενο τύπο, που ορίζεται στο `types`
- Το `@admin` σημαίνει το ρόλο του `admin`.
- `#employees` σημαίνει ομάδα `employees`
- `123456` σημαίνει ένα συγκεκριμένο `userid`

__ΕΠΙΤΡΟΦΗ__:

- `placeholder` {String} ένα μέσο για το συστατικό `j-Directory` (προεπιλεγμένο: `Search`)
- `types` {String} τύποι άδειας (ορισμός που ορίζεται από το φορτίο, προεπιλογή: `CRUD`)
- `disabled` {Boolean} προαιρετική, απενεργοποιεί αυτό το συστατικό
- Η προεπιλεγμένη τιμή `default` {String} `type` (προεπιλογή: `R`)
- `dirkey` {String} προαιρετικά, ένα κλειδί για το κείμενο στο `j-Directory` (προεπιλεγμένο: `name`)
- `labelrole` {String} προαιρετική ετικέτα για ρόλους (προεπιλογή: `Role`)
- `labelgroup` {String} προαιρετική ετικέτα για ομάδες (προεπιλογή: `Group`)
- `limit` {Αριθμός} αριθμός επιτρεπόμενων αδειών (προεπιλογή: `0` = απεριόριστο)
- `pk` {String} ένα κύριο κλειδί το οποίο θα δεσμευτεί στο μοντέλο (προεπιλεγμένο: `id`)
- __IMPORTANT__ `find` {String} διεύθυνση URL για την εύρεση ρόλων, ομάδων και χρηστών, το στοιχείο στέλνει `url?q=SEARCH_QUERY` (το στοιχείο αποστέλλει κενή τιμή)
- __IMPORTANT__ `read` {String} διεύθυνση URL για ρόλους ανάγνωσης, ομάδες και χρήστες, το στοιχείο στέλνει `url?id=@role,#group,userid,...`

```javascript
// The component expects data:
['C@admin', 'U@admin', 'R@admin', 'D@admin', 'R123456', 'R#employees'];

// The component tries to find data:
// The component tries to read data and it pairs them with the model automatically:
[{ id: '123456', name: 'Peter Širka' }, { id: '@admin', name: 'Administrators' }, { id: '#employees', name: 'Employees' }];
```

## Χρήση

```html
<ui-component name="directory"></ui-component>
<ui-component name="permissionsop" path="form.permissions"
  config="find:/api/permissions/search/;read:/api/permissions/read/;types:CRUD"></ui-component>
<script>
  ON('request', function(request) {
    if (request.method === 'GET' && request.data &&
        request.url.indexOf('/api/permissions/') === 0) {
      request.url = QUERIFY(request.url, request.data);
      request.data = null;
    }
  });
  SET('form.permissions', ['R@admin', 'U#employees']);
</script>
```

Δηλώστε το `j-Directory` για το μενού επιλογής. Και τα δύο endpoints επιστρέφουν έναν πίνακα αντικειμένων με τις ιδιότητες συμβολοσειράς `id` και `name`. Το endpoint `find` λαμβάνει το κείμενο αναζήτησης στο `q`. Το endpoint `read` λαμβάνει αναγνωριστικά χωρισμένα με κόμματα στο `id` και ανακτά τα δικαιώματα που υπάρχουν ήδη στο μοντέλο. Το `pk` επιλέγει το πεδίο αναγνωριστικού· η προεπιλογή είναι `id`. Τα αναγνωριστικά ρόλων έχουν πρόθεμα `@` και των ομάδων `#`.

Πηγή : [Total.js συστατικά](https://github.com/totaljs/components/tree/910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e/j-PermissionsOP)Copyright Peter Širka και συνεισφέροντες. [Αδειοδότηση](/knowledge-licenses.json).
