コード例 #1
0
        /// <summary>
        /// Checks if the given user has access
        /// </summary>
        /// <param name="type">What kind of statement to be generated</param>
        /// <param name="tableName">Table name</param>
        /// <param name="idColName">Id column name</param>
        /// <param name="rowId">Row id</param>
        /// <param name="tableAlias">Optional table alias e.g. SQL = TableName as tn, tableAlias="tn"</param>
        /// <param name="userId">User id</param>
        /// <param name="userBitMask">User id converted to bit mask</param>
        /// <param name="userGroupBitMask">User access groups converted to bit mask</param>
        /// <returns>True if the user has access</returns>
        public bool HasAccess(AccessRightType type, string tableName, string idColName, object rowId, int userId, string userBitMask, string userGroupBitMask)
        {
            var accessRights = GenerateAccessRightsStatement(type, userId, userBitMask, userGroupBitMask);

            return(sqlService.OpenConnection((connection) =>
            {
                var hasAccess = connection.Query <object>($"SELECT {idColName} FROM {tableName} " +
                                                          $"WHERE {idColName} = :rowId AND {accessRights}", new { rowId });

                return hasAccess.Any();
            }));
        }
コード例 #2
0
        public Form_AccessRights(AccessRightType _type)
        {
            InitializeComponent();

            type = _type;
            groupBox_UserName.Location = groupBox_ProcessName.Location;

            textBox_FileAccessFlags.Text = FilterAPI.ALLOW_MAX_RIGHT_ACCESS.ToString();

            switch (type)
            {
            case AccessRightType.ProcessNameRight: groupBox_ProcessName.Visible = true; break;

            case AccessRightType.ProccessIdRight: groupBox_ProcessId.Visible = true; break;

            case AccessRightType.UserNameRight: groupBox_UserName.Visible = true; break;
            }
        }
コード例 #3
0
 /// <summary>
 /// Creates the where condition for a particular table and row
 /// </summary>
 /// <param name="type">What kind of statement to be generated</param>
 /// <param name="tableAlias">Optional table alias e.g. SLQ = TableName as tn, tableAlias="tn"</param>
 /// <param name="userId">User id</param>
 /// <param name="userBitMask">User id converted to bit mask</param>
 /// <param name="userGroupBitMask">User access groups converted to bit mask</param>
 /// <returns>Where condition for a row level access control</returns>
 public string GenerateAccessRightsStatement(AccessRightType type, int userId, string userBitMask, string userGroupBitMask, string tableAlias = "")
 {
     if (type == AccessRightType.Read)
     {
         return(GenerateStatement(userId, "UserReadAccess", "GroupReadAccess", userBitMask, userGroupBitMask, tableAlias));
     }
     else if (type == AccessRightType.Write)
     {
         return(GenerateStatement(userId, "UserWriteAccess", "GroupWriteAccess", userBitMask, userGroupBitMask, tableAlias));
     }
     else if (type == AccessRightType.Full)
     {
         return(GenerateStatement(userId, "UserFullAccess", "GroupFullAccess", userBitMask, userGroupBitMask, tableAlias));
     }
     else
     {
         return(string.Empty);
     }
 }
コード例 #4
0
 /// <summary>
 /// Checks if the given user has access
 /// </summary>
 /// <param name="type">What kind of statement to be generated</param>
 /// <param name="tableName">Table name</param>
 /// <param name="idColName">Id column name</param>
 /// <param name="rowId">Row id</param>
 /// <param name="session">Session instance</param>
 /// <returns>True if the user has access</returns>
 public bool HasAccess(AccessRightType type, string tableName, string idColName, object rowId, Session.Session session)
 {
     return(HasAccess(type, tableName, idColName, rowId, session.UserId,
                      session.UserBitMask, session.UserAccessGroupsBitMask));
 }
コード例 #5
0
ファイル: AccessRight.cs プロジェクト: jseee/Perevorot
 public AccessRight(string resourseId, AccessRightType accessRightType)
 {
     ResourseId = resourseId;
     AccessRightType = accessRightType;
 }