Exemplo n.º 1
0
        /// <summary>
        /// Проверка на сохранение объекта в БД, поступившего от клиента, в рамках датаграммы
        /// </summary>
        /// <param name="xuser">Пользователь, сохраняющий объект</param>
        /// <param name="ex">Описание запрета</param>
        public bool HasSaveObjectPrivilege(XUser xuser, DomainObjectData xobj, out Exception ex)
        {
            ex = null;
            ITUser user = (ITUser)xuser;

            using (XStorageConnection con = getConnection())
            {
                ObjectRightsCheckerBase checker = (ObjectRightsCheckerBase)m_ObjectRightCheckers[xobj.ObjectType];
                bool   bAllow;
                string sErrorDescription;
                if (checker != null)
                {
                    bAllow = checker.HasSaveObjectRight(user, xobj, con, out sErrorDescription);
                }
                else
                {
                    bAllow = m_coveringPrivilegesManager.HasSaveObjectRight(user, xobj, con, out sErrorDescription);
                }
                if (sErrorDescription != null && sErrorDescription.Length > 0)
                {
                    ex = new XSecurityException(sErrorDescription);
                }
                return(bAllow);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Запрос разрешенных действий при создании объекта
        /// </summary>
        /// <param name="xuser">Пользователь</param>
        /// <param name="xobj"></param>
        /// <returns></returns>
        public XNewObjectRights GetRightsOnNewObject(XUser xuser, DomainObjectData xobj)
        {
            ITUser user = (ITUser)xuser;

            using (XStorageConnection con = getConnection())
            {
                ObjectRightsCheckerBase checker = (ObjectRightsCheckerBase)m_ObjectRightCheckers[xobj.ObjectType];
                if (checker != null)
                {
                    return(checker.GetRightsOnNewObject(user, xobj, con));
                }
                return(m_coveringPrivilegesManager.GetRightsOnNewObject(user, xobj, con));
            }
        }