Użytkownicy FreeIPA nie widzą nowych atrybutów niestandardowych
Dodałem kilka nowych atrybutów niestandardowych do mojego FreeIPA i do tej pory korzystałem z konta administratora, aby zweryfikować je w WebUI. Ale dzisiaj uzyskałem dostęp do WebUI przy użyciu zwykłego konta użytkownika i byłem zaskoczony, widząc, że nowe atrybuty się nie wyświetlają. kiedy użyłem opcji „sprawdź elementy”, aby wyświetlić kod strony, znalazłem kod atrybutu w następujący sposób:
<dev class="widget text-widget" name="bloodtype" style="display: none;">...</dev>
zwróć uwagę, że atrybut jest nadal widoczny dla administratora.
schemat atrybutów:
dn: cn=schema
changetype: modify
add: attributeTypes
attributeTypes: ( 1.3.6.1.4.1.32473.1.1.591
NAME 'bloodtype'
DESC 'Employee Blood type'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE
X-ORIGIN 'Oracle Unified Directory Server'
USAGE userApplications )
Klasa obiektu:
objectclasses: ( 2.16.840.1.113730.3.8.61.11 NAME 'customPerson' SUP person STRUCTURAL MAY bloodtype X-ORIGIN ( 'Extending FreeIPA' 'user defined' ) )
wtyczka do pythona:
from ipalib.plugins import user
from ipalib.parameters import Str
from ipalib import _
def validate(ugettext,value):
if value not in ['A','B','AB','O']:
return _("Blood type must be either A, B, AB or O.")
user.user.takes_params = user.user.takes_params + ( Str('bloodtype?',validate,
cli_name='bloodtype',
label=_('Blood Type'),
),)
user.user.default_attributes.append('bloodtype')
Wtyczka Javascript:
define([
'freeipa/phases',
'freeipa/user'],
function(phases, user_mod) {
// helper function
function get_item(array, attr, value) {
for (var i=0,l=array.length; i<l; i++) {
if (array[i][attr] === value) return array[i];
}
return null;
}
var plugin = {};
plugin.add_fields = function() {
var facet = get_item(user_mod.entity_spec.facets, '$type', 'details');
var section = get_item(facet.sections, 'name', 'identity');
section.fields.push({
$type:'radio',
options:[{label:'A',value:'A'},{label:'B',value:'B'},{label:'AB',value:'AB'},{label:'O',value:'O'}],
label:'Blood type',
name:'bloodtype'
});
return true;
};
phases.on('customization', plugin.add_fields);
return plugin;
});
Jaki jest problem i jak pozwolić wszystkim użytkownikom, aby go zobaczyć?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Możesz zmienić ACI bezpośrednio w cn = users, cn = accounts, dn = example, = dn = com
lub możesz dodać nowy atrybut do „managed_permissions” w klasie użytkownika dla uprawnienia, które chcesz przyznać, aby uzyskać do nich dostęp. Następnie musisz uruchomić ipa-ldap-updater --upgrade.
lub możesz utworzyć nowe uprawnienia ACI i dodać je do istniejących uprawnień.