Регистрация  |  Вход

Как вы проверяете, что пользователь - администратор?

Как вы проверяете, что пользователь - администратор?

Как вы проверяете, что пользователь - администратор?

Насколько я помню проблема с этим актуальна на локализованных проектах. Потому что кроме как по имени проверить других способов простых я не слышал (DeveloperName нет на Profile). А при смене локали пользователя у стандартных профилей имена тоже переводятся.
Я один раз столкнулся на одном проекте даааавно. Честно не помню как решили - или отказались от затеи или просто два варианта на разных языках проверяли.

Насколько я помню проблема с этим актуальна на локализованных проектах. Потому что кроме как по имени проверить других способов простых я не слышал (DeveloperName нет на Profile). А при смене локали пользователя у стандартных профилей имена тоже переводятся.
Я один раз столкнулся на одном проекте даааавно. Честно не помню как решили - или отказались от затеи или просто два варианта на разных языках проверяли.

Или использовать сеттингс с хардкодед ид или сделать клон профиля и использовать уже его.

Или использовать сеттингс с хардкодед ид или сделать клон профиля и использовать уже его.

А проверить есть ли у него ModifyAll permission?

А проверить есть ли у него ModifyAll permission?

Сегодня узнал что не профайлы нахрен не работают когда выполняется DML в Apex.

Сегодня узнал что не профайлы  нахрен не работают когда выполняется DML в Apex.

Sergey Prichepo
Сегодня узнал что не профайлы нахрен не работают когда выполняется DML в Apex.

В каком смысле? У меня не разрешает вставить запись, если правов нет.

[quote="Sergey Prichepo"]Сегодня узнал что не профайлы  нахрен не работают когда выполняется DML в Apex.[/quote]
В каком смысле? У меня не разрешает вставить запись, если правов нет.

wilder
Или использовать сеттингс с хардкодед ид или сделать клон профиля и использовать уже его.

Это нужно сделать в пакете.

[quote="wilder"]Или использовать сеттингс с хардкодед ид или сделать клон профиля и использовать уже его.[/quote]
Это нужно сделать в пакете.

Dmitry Shnyrev
просто два варианта на разных языках проверяли.

Языков может быть больше чем 2.

[quote="Dmitry Shnyrev"]просто два варианта на разных языках проверяли.[/quote]
Языков может быть больше чем 2.

Chiz
А проверить есть ли у него ModifyAll permission?

Была проверка на основе permission, но выяснилась еще пробблема с лицензиями и версиями оргов.

[quote="Chiz"]А проверить есть ли у него ModifyAll permission?[/quote]
Была проверка на основе permission, но выяснилась еще пробблема с лицензиями и версиями оргов.

Gres
Была проверка на основе permission, но выяснилась еще пробблема с лицензиями и версиями оргов.

А проверить тип лицензии и тип орга можно из Apex?

[quote="Gres"]Была проверка на основе permission, но выяснилась еще пробблема с лицензиями и версиями оргов.[/quote]
А проверить тип лицензии и тип орга можно из Apex?

Chiz
Sergey Prichepo
Сегодня узнал что не профайлы нахрен не работают когда выполняется DML в Apex.

В каком смысле? У меня не разрешает вставить запись, если правов нет.

Создаешь нового юзера в профайле выключаешь доступ к объекту на создание и делаешь кнопку которая инсертит этот объект все инсерт проходит, как мне объяснили код работает в особом режиме который не никогда не смотрит на профайлы.

[quote="Chiz"][quote="Sergey Prichepo"]Сегодня узнал что не профайлы  нахрен не работают когда выполняется DML в Apex.[/quote]
В каком смысле? У меня не разрешает вставить запись, если правов нет.[/quote]
Создаешь нового юзера в профайле выключаешь доступ к объекту на создание и делаешь кнопку которая инсертит этот объект все инсерт проходит, как мне объяснили код работает в особом режиме который не никогда не смотрит на профайлы. 

Что за кнопку такую делаешь?
Скрин можешь приложить?

Что за кнопку такую делаешь?
Скрин можешь приложить?

Gres
Это нужно сделать в пакете.

Не совсем понимаю зачем это. Но в пакете делается настройка и эта настройка сохраняется пользователем при установке или апдейте пакета.

[quote="Gres"]Это нужно сделать в пакете.[/quote]

Не совсем понимаю зачем это. Но в пакете делается настройка и эта настройка сохраняется пользователем при установке или апдейте пакета.

wilder
Не совсем понимаю зачем это. Но в пакете делается настройка и эта настройка сохраняется пользователем при установке или апдейте пакета.

Определенные действия может делать только админ, настройка в данном случае крайне не желательна.

[quote="wilder"]Не совсем понимаю зачем это. Но в пакете делается настройка и эта настройка сохраняется пользователем при установке или апдейте пакета.[/quote]
Определенные действия может делать только админ, настройка в данном случае крайне не желательна.

Dmitry Shnyrev
Что за кнопку такую делаешь?
Скрин можешь приложить?

Command button три строчки кода insert contact

[quote="Dmitry Shnyrev"]Что за кнопку такую делаешь?
Скрин можешь приложить?[/quote]
Command button три строчки кода insert contact

Gres
Определенные действия может делать только админ, настройка в данном случае крайне не желательна.

Не знаю, я бы в этом случае не опирался на стандартные профили. Мало ли как клиенты будут их использовать. Может какому-то клиенту надо одному админу дать права, а другому не давать.
Я вы в этом случае лучше сделал PublicGroup специальную и давал бы в пакете права только на эту группу. Сорри не знаю какой оферхед будет в этом случае по настройкам, но точно лучшу и гибче и проверить проще. Добавить пользователя в эту группу и проконтролировать в 2 клика не так уж сложно.

[quote="Gres"]Определенные действия может делать только админ, настройка в данном случае крайне не желательна.[/quote]
Не знаю, я бы в этом случае не опирался на стандартные профили. Мало ли как клиенты будут их использовать. Может какому-то клиенту надо одному админу дать права, а другому не давать.
Я вы в этом случае лучше сделал PublicGroup специальную и давал бы в пакете права только на эту группу. Сорри не знаю какой оферхед будет в этом случае по настройкам, но точно лучшу и гибче и проверить проще. Добавить пользователя в эту группу и проконтролировать в 2 клика не так уж сложно.

Gres
Определенные действия может делать только админ, настройка в данном случае крайне не желательна.

Попробуй через Tooling API, SELECT Id, FullName, Metadata FROM Profile ORDER BY Name, но используй 34 API

[quote="Gres"]Определенные действия может делать только админ, настройка в данном случае крайне не желательна.[/quote]

Попробуй через Tooling API, SELECT Id, FullName, Metadata FROM Profile ORDER BY Name, но используй 34 API

может с другой стороны подойти к вопросу: а что делает профайл администраторским?

какие есть ключевые отличия между обычным профайлом и администраторским? можно ли эти отличия как-то "прошарить" программными средствами? может попробовать под этим юзером програмно выполнить какие-то действия, которые точно доступны только администратору и посмотреть результат?

может с другой стороны подойти к вопросу: а что делает профайл администраторским? 

какие есть ключевые отличия между обычным профайлом и администраторским? можно ли эти отличия как-то "прошарить" программными средствами? может попробовать под этим юзером програмно выполнить какие-то действия, которые точно доступны только администратору и посмотреть результат?

Можно, например, добавить в Package Permission Set с именем Package Admin. А в коде уже проверять текущего пользователя на наличие этого Permission Set'а.

Можно, например, добавить в Package Permission Set с именем Package Admin. А в коде уже проверять текущего пользователя на наличие этого Permission Set'а.

ilya leshchuk
Можно, например, добавить в Package Permission Set с именем Package Admin. А в коде уже проверять текущего пользователя на наличие этого Permission Set'а.

Это все понятно, но желание было проверить, что у юзера есть права как раз без участия юзера.

[quote="ilya leshchuk"]Можно, например, добавить в Package Permission Set с именем Package Admin. А в коде уже проверять текущего пользователя на наличие этого Permission Set'а.[/quote]
Это все понятно, но желание было проверить, что у юзера есть права как раз без участия юзера.

Задача решилась проверкой определенный стандартных пермишенов, но мне не очень нравится это решение.

Задача решилась проверкой определенный стандартных пермишенов, но мне не очень нравится это решение.

Gres
Попробуй через Tooling API, SELECT Id, FullName, Metadata FROM Profile ORDER BY Name, но используй 34 API

Попробуй через Tooling API, SELECT Id, FullName, Metadata FROM Profile ORDER BY Name, но используй 34 API

А чем тебе это решение не понравилось ?

[quote="Gres"]Попробуй через Tooling API, SELECT Id, FullName, Metadata FROM Profile ORDER BY Name, но используй 34 API[/quote]

[code]
Попробуй через Tooling API, SELECT Id, FullName, Metadata FROM Profile ORDER BY Name, но используй 34 API
[/code]

А чем тебе это решение не понравилось ?

А что там имеено в 34 версии?

А что там имеено в 34 версии?

Gres
А что там имеено в 34 версии?

В этой версии ты можешь получить поле FullName для нескольких полей.

Хотя сейчас подумал что тебе это не важно.

Делай FullName='Admin' и можно использовать любую версию.

[quote="Gres"]А что там имеено в 34 версии?[/quote]

В этой версии ты можешь получить поле FullName для нескольких полей.

Хотя сейчас подумал что тебе это не важно.

Делай FullName='Admin' и можно использовать любую версию.

field 'FullName' can not be filtered in query call

field 'FullName' can not be filtered in query call

Gres
field 'FullName' can not be filtered in query call

Блин точно, поэтому и нужно API 34 для выборки всех профилей и потом в цикле поиска Amin профиля.

[quote="Gres"]field 'FullName' can not be filtered in query call[/quote]

Блин точно, поэтому и нужно API 34 для выборки всех профилей и потом в цикле поиска Amin профиля.

Проблема еще в том, что кастомные профили, созданные на основе админа, не всегда называют %Admin%.

Проблема еще в том, что кастомные профили, созданные на основе админа, не всегда называют %Admin%.

Gres
Проблема еще в том, что кастомные профили, созданные на основе админа, не всегда называют %Admin%.

Значит дай более четкое определение что для вас считается профилем Админа.

[quote="Gres"]Проблема еще в том, что кастомные профили, созданные на основе админа, не всегда называют %Admin%.[/quote]

Значит дай более четкое определение что для вас считается профилем Админа.